1

嗨,我想动态创建角度模板,如下所示:

索引.html:

    <div ui-view></div>
    <ul class="nav-links">
       <li ng-repeat="item in items">
           <a ui-sref="{{item.id}}"">{{item.name}}</a>
       </li>                    
    </ul>

    <script ng-repeat="item in items" type="text/ng-template" id="{{item.id}}.html">
     <h1>{{item.name}}</h1>
    </script>

我怎么能那样做?我在网上搜索,发现我们可以动态包含模板,但我没有找到任何指定如何动态创建模板本身的地方。

谢谢, 桑比尔

4

1 回答 1

2

最好的方法是自定义指令!这就是使 angularjs 强大的原因。

.directive('myCustomer', function() {
  return {
    restrict: 'E',
    template: 'myCustomer.html'
  };
});

并在您的索引或您可以调用的任何内容中:

<my-customer></my-customer>

编辑:动态生成您的自定义指令使用属性控制器或链接。

.directive('myCustomer', function() {
  return {
    restrict: 'E',
    template: 'myCustomer.html',
    controller: function ($scope,$http) {
     // here you can use $scope, $http etcs... but
    }, // to make it clean and standard use Link
    link: function (scope, element, attrs) {
      // do all stuff like API call JQuery stuff and all here
    }
  };
});

有了它,您可以从 API 或您想要的任何东西动态生成您的指令:)。:)

于 2015-11-06T11:31:15.553 回答