Angular js动态复选框和实时数据

时间:2015-05-14 13:20:25

标签: javascript angularjs checkbox

我在对象中有onclick函数和数据

$scope.messages = [
{"id": "1"},
{"id": "2"},
{"id": "3"},
{"id": "4"},
];

$scope.selection = {
   ids: {}
};

$scope.sendMe = function(message) {
    //send the data with `id` and `check state`
}

function onMessageArrived(response) {
_.each($scope.message, function (n, key) {
  if (responseID == n.id) {
    var boolValue = response.payloadString == 'true';
    $scope.selection.ids[n.id] = boolValue;
  }
});
}

现在我用ng-repeat循环创建复选框。

<div ng-repeat="message in messages" ng-class="message.type">
  <input type="checkbox" class="switch-input" ng-click="sendMe()" ng-model="selection.ids[message.id]"> 
</div>

它工作正常但邮件到达我的arrived function时。 它将$scope.selection.ids[n.id]添加到truefalse添加

$scope.selection = { 
     ids: {"1": true}
}

但问题是它不是实时更新我的​​复选框。

我错过了什么?

感谢。

2 个答案:

答案 0 :(得分:0)

哦,我失踪的是

$scope.$apply(function() {
    $scope.selection.ids[n.id] = boolValue;
});

答案 1 :(得分:0)

您正在messages重复ng-repeat="message in messages",但$scope.messages变量永远不会更新。您应该在$scope.messages.push(message);函数

中执行onMessageArrived