为什么我的控制器方法不可用?
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()
以从方法中获取数组。
隔了好久又要集中精神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()
以从方法中获取数组。