无法从同一控制器中的$ http服务内部调用$ scope中的函数

时间:2017-01-07 16:56:02

标签: angularjs

我试图将我的JS文件中的一个函数移动到我的Angular控制器中,因为我从控制器内部调用了这个函数,将它放在那里而不是转到另一个文件是有意义的

我似乎无法让$ http服务知道这个函数(highlighter1)

(function(angular) {
  'use strict';
angular.module('myApp', ['ui.bootstrap'])
.controller('Controller', function($scope, $http) {   

    $scope.highLighter1 = function(side, string, load, callback) {}

    $http.get('/comments')
    .success(function(response) {
        $scope.comments = response;
        var allEl=[];
        var i;
        for (i=0; i<response.length; i++) {
            allEl.push(response[i]._id);
        }
        $http.post('/ranges', {"commentIds":allEl})
        .success(function(result){
            result.forEach(function(item){
                highlighter1(item.dataAction, item.rangyObject, true);
          })
        })
    });
})
})(window.angular);

我在控制台中收到“无法提交变量highlighter1”的错误,所以我猜我需要以某种方式在不同的范围内注册它?

1 个答案:

答案 0 :(得分:2)

这不是一个全球性的甚至是本地的功能。它是$scope的属性。所以你需要$scope.highLighter1(...)

另请注意首都L。 JavaScript区分大小写。