我正在使用 Coffeescript 并尝试定义一个 Controller ,它将 使用“HomeController as homeCtrl”语法。
angular.module('myApp.controllers',[]).controller("HomeController", ->
@someArray = []
# return
)
这已被破坏 - scope.homeCtrl
设置为 []
而不是对象 {someArray: []}
。我意识到这是因为 Coffeescript 自动返回函数的最后一行,因此转换后的 return this.someArray = []
返回该函数的 []
。我可以通过取消注释裸露的 return
命令,甚至诸如 return true
或 @baz='foobar'
之类的命令来解决此问题。但真正奇怪的部分是,只有当函数的最后一行返回一个数组时,才会出现困惑。这是怎么回事?
最佳答案
这个问题简直要了我的命!它实际上不仅仅是数组。只要养成在 Controller 末尾返回的习惯即可。
编辑:更具体一些。它的 Angular 使用 new 关键字将函数作为构造函数调用。构造函数行为按照 This SO Post 中的指定进行指定。
关于javascript - 使用 Coffeescript 设置 AngularJS Controller 属性不能是最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29236009/