2

很长一段时间后,我不得不再次集中注意力。但是我失败了...

... ng-repeat="n 在 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

4

1 回答 1

5

您必须在控制器的(上下文)页面上公开您想要访问的method/ 。这样您就可以通过控制器别名访问该方法/变量,因为您似乎正在使用模式。variablethiscontrollerAs

代码

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-repeatgetObjects()获取一个数组。

于 2016-12-30T14:55:29.437 回答