所以,我试图不在我的控制器中使用观察者,但是,当它发生变化时我怎么能得到一个值?
这是我的Controller(MyController)使用我服务的监听器:
/**
* @param Int index
*/
myService.listener.setDrawAttentionIndex = function (idTask) {
if (lodash.isNumber(idTask) && !lodash.isNaN(idTask)) {
if ($scope.task.idFromTask === idTask) {
$scope.goal.selectedDrawAttention = true;
} else {
$scope.goal.selectedDrawAttention = false;
}
}
};
这是我的服务:
/**
* @param Int index
*/
this.setDrawAttention = function (idTask) {
if (lodash.isNumber(idTask) && !lodash.isNaN(idTask)) {
drawAttentionIndex = idTask;
that.listener.setDrawAttentionIndex(idTask);
}
};
和我可能的观察者:
$scope.$watch('myService.getDrawAttention()', function (index) {
if (lodash.isNumber(index) && !lodash.isNaN(index)) {
if ($scope.task.idFromTask === index) {
$scope.goal.selectedDrawAttention = true;
} else {
$scope.goal.selectedDrawAttention = false;
}
}
});
什么更好用?我不想在我的控制器中使用观察器,因为它很难测试,但是,我不知道如何在它改变时获得价值......从我的服务中放一个听众是个好主意,就像我做的那样以上?我的服务监听器中的$ scope变量会发生什么?