在angularjs

时间:2015-11-06 11:21:48

标签: angularjs angular-ui-router angular-ui-router-extras

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

的index.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>

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

谢谢, Sombir

1 个答案:

答案 0 :(得分:2)

您可以做到这一点的最佳方式是自定义指令!这是使angularjs强大的原因。

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

并在您的索引中或您可以称之为的任何内容:

<my-customer></my-customer>

编辑: 要动态生成您的Custom指令,请使用属性Controller或Link。

.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或任何你想要的东西生成动态你指令:)。 :)