如何在指令模板中包含模板?

时间:2015-06-26 14:25:17

标签: javascript angularjs templates angularjs-directive angularjs-ng-include

如何在angular指令的模板中包含.html模板?

我包含模板的当前方式成功地将该模板的HTML拉入指令模板,但模板中的变量未链接到控制器。

这就是我目前正在做的事情:

_directive_template.html

<section>
  ...
 <div ng-include="'/templates/_template_to_be_included.html'"></div>
  ...
</section> 

_template_to_be_included.html

 <form>
    <input ng-model="some_value">
    <button type="submit">Update</button>
 </form>

指令

...
function link(scope, element, attrs) {
      scope.some_value  // not correctly linking to some_value within included template 
      }
  return {
    scope: {},
    link: link,
    templateUrl: '/templates/_directive_template.html'
  };
....

当我将_template_to_be_included.html的HTML直接复制并粘贴到指令模板中时(而不是如上所述使用ng-include),一切正常并且some_value在表单中的位置与其之间正确链接放在控制器中。

如何将模板正确地包含在指令模板中,并将其变量链接到指令中的对应物?似乎ng-include应该有效,因为它将“获取并编译”指定的模板...

Plunkr: 输入一些输入并点击“更新”

1 个答案:

答案 0 :(得分:2)

我相信我理解了这个问题。我把一个Plunker放在一起。

http://plnkr.co/edit/L4ZN5XhOpex6U5MRKsZ4?p=preview

<div>
  <h1>Directive Template</h1>
  <p>This is just some garbage text.</p>

  <h1>ng-include template</h1>
  <div ng-include="'_template_to_be_included.html'"></div>
</div>