Angular复选框不会刷新,但会发生此行为

时间:2016-02-17 09:01:28

标签: javascript angularjs checkbox

我创建了一个Angular应用。 在我的应用中,我有一个复选框。通过选中复选框,我添加或删除形状。

myApp.controller('Controller', [ function(){
   this.addOrRemoveShape = function(shape){
        if (shape){
            var isSelected = shape.isSelected;
            if (isSelected === true){
                //ADD SHAPE
            }
            else{
                //REMOVE SHAPE
             }
     }
     ....

功能:

this.showOrHidePredefinedShapes = function (layer){
    var shapes = layer.shapes;
    for (var i .... shapes.length){
       var shape = shapes[i];

       shape.isSelected = true;
       that.addOrRemoveShape(shape);
    }
}

此功能完美无缺。如果我设置断点 - 当我点击复选框时,我会转到此功能。

在另一个地方,我添加了一个按钮。 当用户点击按钮时,必须添加一些形状,当然必须选中复选框。

<Frequency
       jcr:primaryType="cq:Widget"
       allowBlank="false"
        fieldLabel="Frequency(sec.):"
        name="./duration"
        xtype="numberfield"/>
<FrequencyHint
           jcr:primaryType="cq:Widget"
            defaultValue="Long"
            name="./duration@TypeHint"
            value="Long" 
            xtype="hidden"/>

它正在发挥作用。绘制形状并选中复选框。但是,当我单击特定选定形状的复选框以取消选中它们时,形状正在移除,但我无法进入断点,复选框仍然保持检查状态。 我不明白为什么......

1 个答案:

答案 0 :(得分:0)

我会尝试提供一些不同的方法: ng-repeat图层上的所有形状,并根据ng-if属性在形状上添加isSelected

<div class="layer">
    <div class="shapes" ng-repeat="layer.shapes">
        <div class="shape" ng-if="shape.isSelected">
            <!-- render the shape -->
        </div>
    </div>
</div>