为什么我的控制器方法不可用?

Why are my controllers methods not available?

隔了好久又要集中精神angular了。 但是我失败了...

... ng-重复="n in DataController.getObjects"

myApp.controller('DataController', [function () {

    console.log('test 1');

    var getObjects = function () {
        console.log('test 2');
        return [1,2,3,4,5,6,7];
    };

}]);

它正在将测试 1 写入控制台而不是测试 2。并且前端没有获取数组。

有什么提示吗?

问候 n00n

您必须在控制器的 this(上下文) 页面上公开要访问的 method/variable。这样您就可以像使用 controllerAs 模式一样通过控制器别名访问 method/variable。

代码

myApp.controller('DataController', [function () {
    var self = this;
    console.log('test 1');
    var getObjects = function () {
        console.log('test 2');
        return [1,2,3,4,5,6,7];
    };

    self.getObjects = getObjects;
}]);

我希望你在使用ng-controller指令时已经定义了控制器别名,如果你还没有使用它,请按照下面的操作。

ng-controller="DataController as dataCtrl"

ng-repeat="n in dataCtrl.getObjects()"

如您所见,您应该调用 ng-repeat 中的方法,例如 getObjects() 以从方法中获取数组。