【问题标题】:How does AngularJS recognize a function as controller directiveAngularJS 如何将函数识别为控制器指令
【发布时间】:2013-02-09 02:06:34
【问题描述】:

我正在查看Angular API reference。它说 ngController 是一个指令,并给出以下示例:

function SettingsController($scope) {
 $scope.name = "John Smith";
}

这看起来就像一个普通的 Javascript 函数,传入了参数 $scope。我想定义指令,我们需要调用:

app.directive("name", func())

Angular 是否将任何带有 $scope 参数的函数视为控制器指令?或者只有当我们修改 DOM 元素以包含 ng-controller = "SettingsController" 时 SettingsController 才会被这样解释?

【问题讨论】:

    标签: angularjs angularjs-directive


    【解决方案1】:

    ngController 是指令(指令总是在 DOM 中被引用——Angular 允许您通过标签名、属性、类名和 cmets 指定指令)。编写 ngController 指令是为了根据传入指令的名称(在本例中为字符串 "SettingsController")创建控制器实例。函数本身不是指令。

    【讨论】:

    • 感谢您消除我的误解。现在,如果我可以将任何函数传递给指令,那么上面的普通 JS 函数和 myApp.controller("SettingsController", function() {}) 之间有什么区别?
    • 没问题!并且没有区别。 ngController 指令足够聪明,可以在全局范围内找到函数,但我个人讨厌这种模式并且总是建议人们使用myApp.controller 来定义控制器函数。
    • 完美!谢谢推荐。
    猜你喜欢
    • 2018-12-01
    • 1970-01-01
    • 2021-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-29
    • 1970-01-01
    • 2013-03-15
    相关资源
    最近更新 更多