Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 尝试在控制器中不使用监视程序_Angularjs - Fatal编程技术网

Angularjs 尝试在控制器中不使用监视程序

Angularjs 尝试在控制器中不使用监视程序,angularjs,Angularjs,所以,我试图不在我的控制器中使用watcher,但是,当它发生变化时,我怎么能得到一个值呢 以下是我的控制器(MyController),它使用我的服务中的侦听器: /** * @param Int index */ myService.listener.setDrawAttentionIndex = function (idTask) { if (lodash.isNumber(idTask) &

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

以下是我的控制器(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);
            }
        };
这是我的服务:

        /**
         * @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;
                }
            }
        });

用什么更好?我不想在我的控制器中使用watcher,因为它很难测试,但是,我不知道如何在它发生变化时获得值。。。在我的服务中设置一个侦听器是个好主意,就像我上面所做的那样?我的服务侦听器中的$scope变量会发生什么情况?

您能更好地解释您在这里试图解决的问题吗?我不想在控制器内部使用“监视”…所以不要这样做。除非我们能够理解为什么您首先在控制器中使用手表,否则我们如何推荐替代品?使用什么更好?我不想在我的控制器中使用watcher,因为它很难测试,但是,我不知道如何在它发生变化时获得值。。。在我的服务中设置一个侦听器是个好主意,就像我上面所做的那样?我的$scope变量在我的服务侦听器中发生了什么?你不明白什么?