【问题标题】:Angular checkbox is not refreshed but the behaviour occures角度复选框未刷新,但行为发生
【发布时间】:2016-05-28 21:08:30
【问题描述】:

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

<div class="checkboxAndLabel">
    <input type="checkbox" id="{{shape.id}}" name="checkbox"
       ng-model="shape.isSelected" ng-click="controller.addOrRemoveShape(shape)"/>
    <label for="{{shape.id}}"></label>
</div>

功能:

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);
    }
}

它正在工作。绘制形状并选中复选框。但是,当我单击特定选定形状的复选框以取消选中它们时,形状正在删除,但我无法进入断点,并且复选框仍处于选中状态。 我不明白为什么....

【问题讨论】:

  • 如果你能创建一个 fiddle/plunker 演示会非常有帮助。
  • 可能不是原因,但我猜这个 'ng-model="stage.isSelected"' 必须有 shape.isSelected 而不是 stage.isSelected,不是吗?..
  • 真的是现实中的形状。当我把它复制到这里时我的错误。问题依然存在

标签: javascript angularjs checkbox


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2015-05-30
    • 2018-09-15
    • 2015-04-02
    • 1970-01-01
    • 2018-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-31
    相关资源
    最近更新 更多