首先,我在stackoverflow中查找了有关它的其他问题,并阅读了许多答案,但仍然无法解决我的问题。
我正在使用Angular Material,并且在视图和模型同步方面遇到麻烦。
这是我的控制器代码:
$scope.getQuestionByDateRange = function (range) {
QuestionService.getQuestions(1, 'week', 10, function (response) {
$scope.questions = response.data;
})
}
这是我的查看代码:
<ul>
<li ng-repeat="question in questions">{{question.title}}<li>
<ul>
更新$scope.questions
控制器中的变量时,我的视图正确渲染了模型。
但是,当我再次更新时$scope.questions
:我的模型得到更新(我可以看到控制台日志中的更改),但是视图没有更新。
我研究一下,我发现解决方案,如$scope.$apply
,$scope.$digest
,$scope.$evalAsync
但没能解决我的问题。
怎么了?
这里的问题是整个对象都被替换了(因此它失去了它对视图的绑定)。
我会取代整个对象,而不是替换整个对象。只需替换它的元素即可。
$scope.questions = $scope.questions || [];
$scope.getQuestionByDateRange = function (range) {
QuestionService.getQuestions(1, 'week', 10, function (response) {
$scope.questions.length=0; // Reset the array
$scope.questions.push.apply($scope.questions, response.data);
})
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句