为啥我的控制器方法不可用?
Posted
技术标签:
【中文标题】为啥我的控制器方法不可用?【英文标题】:Why are my controllers methods not available?为什么我的控制器方法不可用? 【发布时间】:2017-05-14 20:52:16 【问题描述】:很长一段时间后,我不得不再次集中注意力。 但我失败了……
... ng-repeat="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
【问题讨论】:
【参考方案1】:您必须在控制器的this
(上下文)页面上公开您想要访问的method
/variable
。这样您就可以通过控制器别名访问该方法/变量,因为您似乎正在使用controllerAs
模式。
代码
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()"
如您所见,您应该像getObjects()
一样调用ng-repeat
中的方法以从方法中获取数组。
【讨论】:
还是不行 .controller('DataController', [function () var self = this; console.log('test 1'); var getObjects = function () console.log('测试 2'); 返回 [1,2,3,4,5,6,7]; ; self.getObjects = getObjects; ]);是的,我做到了: 检查更新的答案,谢谢;)你错过了getObjects
方法
以上是关于为啥我的控制器方法不可用?的主要内容,如果未能解决你的问题,请参考以下文章
为啥所有的 Rails 助手总是对所有视图可用?有没有办法禁用它?