user-interface - Angular 计数未更新

标签 user-interface angularjs counter

我有一个 Angular Controller 方法,可以计算等待就座的人数(比如在餐厅)。模型包含设置为 true 或 false 的属性。该方法应该迭代模型,检查“就座”属性并计算所有为 true 的属性。

查看一个简单的示例:http://jsfiddle.net/JoeDredd/nB4tP/

function seatingCtr($scope) {
$scope.bookings = [{
    name: 'fred',
    seated: true
}, {
    name: 'george',
    seated: false
}, {
    name: 'barney',
    seated: false
}];

$scope.toSeat = function () {
    var count = 0;
    angular.forEach($scope.bookings, function (booking) {
        count += booking.seated ? 0 : 1;
    });
    return count;
};

}

该方法适用于页面加载,并且更改就座下拉菜单可以正确反射(reflect)属性(就座人数),但是当您再次更改下拉菜单时,更新的计数器不会反射(reflect)正确的数字。我无法弄清楚为什么计数器没有正确改变,因为逻辑似乎都很合理。

有人能指出我正确的方向吗?

提前致谢。

最佳答案

问题是,当您将预订从“入座”更改为“未入座”时,booking.seated 模型的值更改为字符串“false”,而不是 bool 值 false。任何不为空的字符串都将计算为 true,这就是 toSeat() 内部发生的情况。

Boolean("false");  // == true

Here is your fiddle true 和 false 替换为字符串“true”和“false”,条件现在检查是否 booking.seated ===“true”

关于user-interface - Angular 计数未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17011871/

相关文章:

javascript - 当指令内的范围发生更改时, View 不会更新

javascript - Angular 触发 Div 根据条件点击

javascript - 使滚动开始的框滚动到底部

react-native - 如何使用react-native-elements 中的主题提供者标签包装appContainer?

.net - WPF:如何为组件列表添加动画?

angularjs - 如何增加 Angular Material 中的 md-tab 大小?

java - 在 java 中创建一个计数计时器(仅秒和毫秒)

Javascript 或 Jquery 文本区域计数器具有最小文本长度?

c - 换行符在格式字符串中时 scanf 的行为

java - 如何将文件内容打印到 GUI