范围和与AngularJS中的指令的关联

时间:2014-03-18 18:15:29

标签: angularjs angularjs-directive angularjs-scope

请帮助我理解AngularJS中的范围。

  1. 如果我在指令中关联控制器(而不是在html中),它是否应该对与指令相关的范围产生任何影响?

  2. 如何在范围隔离后使用ng-repeat?

  3. 例如这是一个例子:http://plnkr.co/edit/0flo5mru61r9h3H8kiW5?p=preview

    EX1。如果我注释掉(div ng-controller =" Ctrl")[第40,43行],而是在指令中取消注释(// controller:' Ctrl')[第35行],为什么没有创建相同的范围/层次结构(如在Batarang中所见)。

    EX2。如何在不更改当前控制器的情况下为instructorList和profList(单独)运行ng-repeat,而只是使用范围?

1 个答案:

答案 0 :(得分:1)

我不确定如何检查batarang中的掠夺者,但是。

  1. 如果这样做,您将对控制器进行两次实例化:在每个指令元素上执行一次。每次实例化它时,您都要创建一个新范围。因此,您有两个独立的兄弟范围。你可以从html中看到,heirarchy不会像在同一个拥有自己范围的元素中拥有它们一样。在后一种情况下,子元素1所做的更改将影响子元素2使用的相同范围。

  2. 这里的含义不太清楚。 ng-repeat应该在html中完成。您可以将它放在模板中,如下所示:

    template: '<label ng-repeat="person in teacherList">{{person.id}}<input ng-model="person.name"><br></label>'

  3. 请参阅this