试图不在我的控制器中使用观察者

时间:2014-06-09 19:46:28

标签: angularjs

所以,我试图不在我的控制器中使用观察者,但是,当它发生变化时我怎么能得到一个值?

这是我的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变量会发生什么?

0 个答案:

没有答案