在加载模板和创建范围时,我应该使用“控制器”或“指令”吗?

时间:2015-05-13 15:15:05

标签: javascript angularjs templates angularjs-directive controllers

让我举两个例子来更好地解释我的困惑:

HTML1

<div>
    <ng-include src="template1" ng-controller="controller1">
    </ng-include>
</div>
<div>
    <ng-include src="template2" ng-controller="controller2">
    </ng-include>
</div>

HTML2

<div>
    <templateone-include src="template1">
    </templateone-include>
</div>
<div>
    <templatetwo-include src="template2">
    </templatetwo-include>
</div>

正如您在此处所见,我提供了两种加载不同模板的方法。

  1. 使用 ng-include 并分配控制器以创建范围。
  2. 使用将加载模板的指令(使用templateUrl)并创建一个隔离的范围。
  3. 我通常认为指令主要用于DOM操作,可重复使用的代码和控制器用于具有不同数据的不同部分,因此我会使用第一种方法而不是第二种方法是因为我们使用不同指令的唯一目的是加载不同的模板并创建一个孤立的范围。

    那么根据你的方法是更好和正确的方法吗?

1 个答案:

答案 0 :(得分:1)

  

我通常认为指令主要用于DOM操作   以及用于不同部分的可重用代码和控制器   不同的数据,因此我会使用第一种方法而不是第二种方法   因为我们使用不同指令的唯一目的是   加载不同的模板并创建一个独立的范围。

这也是我对指令的看法。应使用指令向某些特定HTML元素添加某些行为。如果您只需要包含一个模板并将其链接到控制器,那么第一个选项绝对是可行的方法。