嵌套在指令内的控制器从何处获取其名称?

时间:2016-05-02 20:39:22

标签: javascript angularjs

在代码学院第4.6节使用angular进行整形测试我注意到以下场景,其中指令控制器名称似乎映射到HTML文件中指定的任何控制器。

以下是var attrs = new RouteValueDictionary(attrsInDict); 中的指令:

app.js

以下是app.directive('productTabs', function() { return { restrict:'E', templateUrl:'product-tabs.html', controller: function() { // move controller inside of the directive this.tab = 1; this.isSet = function(checkTab) { return this.tab === checkTab; }; this.setTab = function(setTab) { this.tab = setTab; }; }, controllerAs: 'tab'// you need the alias }; });

index.html

然而,以下<product-tabs ng-controller"ProductTab as tab"></product-tabs> 工作正常,令我感到困惑。

index.html

更令人困惑的是<product-tabs ng-controller"productTab as tab"></product-tabs> 中控制器的完全随机名称,如下所示:

index.html

为什么我几乎可以将HTML命名为HTML中的任何内容,无论它在JavaScript文件中的<product-tabs ng-controller"foo as tab"></product-tabs> 中如何声明?这里有什么魔力,是否有一个我应该阅读的主题,以了解为什么所有这些场景都有效?

我可以看到app.directive是否适用于所有案例和非复数版本,但为什么它会识别html中的productTabs并以某种方式实现映射到foo as tab控制器?

0 个答案:

没有答案