【发布时间】:2015-05-18 02:39:50
【问题描述】:
关于如何在 UI 上显示我在数据库中所做的更改,我一直在做噩梦。我有这种情况,我需要选择某些标题,然后我将单击一个按钮来更改其状态。
问题是当我选择标题然后单击更改状态按钮时,它不会自动反映在 UI 上。这是我的更新功能。
$scope.updateTitleStatus = function(statusId, cp){
ContentAssessmentService.updateSelectedTitles($scope.selectedTitles, statusId);
$scope.selAll = !$scope.selAll;
$scope.selectedTitles = [];
};
这是我的服务。
this.updateSelectedTitles = function(selectedTitle, statusId){
var self = this;
_.forEach(selectedTitle, function(selectedTitle){
ContentAssessmentFactory.updateSelectedTitleStatus(selectedTitle.id, statusId);
});
};
这是我存储的所选标题的数组。
$scope.selectedTitles = [];
你能告诉我如何使用 $watch 功能吗?我不知道该怎么做。我已经这样做了,但它不起作用。
$scope.$watch(function($scope){
return $scope.selectedTitles;
}, function(newValue) {
$scope.selectedTitles = newValue;
console.log(newValue);
});
当我点击更改状态按钮时,我只需要立即更新 UI 而无需刷新页面(这是我的最后一个选项,但我尽量不这样做)。
【问题讨论】:
-
为什么不创建一个工厂,在用户单击按钮后向数据库发出请求并返回数据?如果您愿意,我可以为您编写一个快速示例工厂。
标签: javascript angularjs scope underscore.js