Angular Directives:如何将“template as function”更改为“templateUrl”?

时间:2017-05-03 18:33:24

标签: angularjs angularjs-directive

我是AngularJS的新手。我正在尝试修改其中一个指令

当前代码:

template:   function(tElement, tAttrs){
      return  "<div ..........>"+
               "<div>"

我想改变:

templateUrl: 'some.html'

注意:我已经从模板中复制了HTML部分代码并创建了名为“some.html”的文件,但它无效。

我错过了什么?

2 个答案:

答案 0 :(得分:1)

除非我弄错了,否则你需要返回一个对象,如下所示:

return {
        templateUrl: 'some.html'
    }

只要您的文件路径正确,那么您应该好好去。

答案 1 :(得分:1)

  1. 确保在返回指令
  2. 时返回有效的json对象
  3. 确保您的html内容只有一个根元素 - 即 像这样的模板 -

    <div>...</div>
    <div>...</div>
    
  4. 不允许你需要这样一个根元素 -

    <div>
        <div>...</div>
        <div>...</div>
    </div>
    
    1. 要将范围值设置为html内容使用链接并使其可用。
    2. 下面是一个完整的指令示例及其html

         myTestApp.directive('directive', function(configuration) {
            return {
              restrict: 'E',
              templateUrl: 'myContactTemplate.html',
              link: function(scope, element, attrs) {
                scope.config = configuration;
              }
            };
          });
      

      HTML

      <div>{{config.name}}<br>Version: {{config.age}}</div>