AngularJS范围定义函数为null

时间:2013-11-29 09:45:22

标签: javascript angularjs angularjs-scope

我的控制器中定义了一个函数,该函数使用ng-click绑定到一个元素,a元素嵌套的li元素也有一个ng-repeat指令。
当我通过angular chrome开发人员工具检查该控制器的$ scope时,我看到函数,在这种情况下,$ scope.goToApp为null。

我在其他控制器中已经完成了很多其他操作,所以为了确保我没有做过任何拼写错误我已经复制粘贴了我是如何从另一个控制器进行的,但无济于事。< / p>

控制器:

(function () {
'use strict';

var controllers = angular.module('portal.controllers');

controllers.controller('applicationController',['$scope', 'ApplicationService', 'NavigationService','$rootScope', function ($scope, ApplicationService, NavigationService,$rootScope) {

    $scope.goToApp = function(appId){
        NavigationService.navigateToApp(appId, false);
    };

    $rootScope.ESS = ApplicationService.getApplications(Constants.id_ESS);
    $rootScope.SVF = ApplicationService.getApplications(Constants.id_SVF);
    $rootScope.MED = ApplicationService.getApplications(Constants.id_MED);

    $rootScope.$watch('ESS', function(newValue){
        $scope.ESS = newValue;
    });

    $rootScope.$watch('SVF', function(newValue){
       $scope.SVF = newValue;
    });

    $rootScope.$watch('MED', function(newValue){
       $scope.MED = newValue;
    });
}]);
}());

HTML:

<li data-ng-repeat="tool in ESS | filter: {tool:true} | orderBy:'description'" class="col-lg-12">
    <a class="toolLink" href="#" data-ng-click="goToApp({{tool.code}})">{{ tool.description }}</a>
</li>

调试器:

goToApp: null

1 个答案:

答案 0 :(得分:3)

ngClick接受表达式作为参数。无需使用插值:

data-ng-click="goToApp(tool.code)"