【问题标题】:Angular binding not working properly on checkbox (webkit)角度绑定在复选框(webkit)上无法正常工作
【发布时间】:2013-07-15 01:56:14
【问题描述】:

我有这个代码:

<input type="checkbox" ng-checked="item.selected == 'yes'"  ng-click="change()">{{item.selected}}<br/>

http://jsfiddle.net/NmQXp/2/

如您所见,有三个相同的复选框,它们的选中状态绑定到某个字符串的值。问题是我想为复选框引入一个中间“部分选中”状态。事实上,我想要做的是使用复选框将值从“待处理”更改为“正在进行”,然后更改为“完成”(我正在制作一个待办事项列表)。

如果您多次单击其中一个,您可以看到其他的行为正确,但是您单击的那个的检查状态是错误的。

¿这是 Angular Binding 中的错误,还是我遗漏了什么?

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    好吧,我尝试修复您的小提琴以处理已检查的问题。行为不一致,因为由于默认 HTML 行为,当鼠标单击它时会检查复选框。我添加了这些行以防止复选框的默认行为。

     if ($scope.item.selected == 'no') {
                $scope.item.selected = 'halfway';
                $event.preventDefault();
            }
    

    这是更新后的小提琴。

    http://jsfiddle.net/cmyworld/J27jN/

    【讨论】:

    • 谢谢!我不知道您可以将事件作为参数传递。
    • 我在文档中的任何地方都找不到该事件的 $event 包装器。你是从哪里弄来的?我们在角度表达式中还有哪些其他变量可用?有他们的名单吗?
    • 嗯,我不记得了,但绝对不是来自文档。很可能来自一些旧的SO问题:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    • 2019-10-17
    • 1970-01-01
    • 2021-10-22
    • 1970-01-01
    • 1970-01-01
    • 2017-04-04
    相关资源
    最近更新 更多