javascript - 使用 Coffeescript 设置 AngularJS Controller 属性不能是最后一行

标签 javascript angularjs coffeescript

我正在使用 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/

相关文章:

javascript - Coffeescript,在这种情况下如何在函数中传递变量?

javascript - CoffeeScript:使用对象作为参数

javascript - 限制在 Angular 中输入小数以外的任何内容

angularjs - 有没有办法在 ng-repeat 的最后一次迭代中做一些不同的事情

javascript - 回答了 : Streamlining

javascript - 如何知道用户是否输入了无效的$routeparams

javascript - 调用函数或将数据传递给另一个 Controller AngularJS

javascript 名称值不起作用

javascript - 如何渲染 d3.layout.tree 使其向下传播(根在顶部)

javascript - 当输入仍然集中时,jquery 代码不执行