我在对象中有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]
添加到true
或false
添加
$scope.selection = {
ids: {"1": true}
}
但问题是它不是实时更新我的复选框。
我错过了什么?
感谢。
答案 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