我可以在angularJs指令模板中传递一个字符串吗?

时间:2018-03-01 07:26:45

标签: html angularjs

我是angularJS的新手。这是我的示例代码:

app.directive("w3TestDirective", function() {
        return {
            template :  '<ul>'+
                        '<div ng-repeat="rows in roleMenulistByID">'+
                        '<li>{{rows.route_alias_name}}</li>'+
                        '</div>'+
                        '</ul>'
        };
    });

我的问题是我可以将模板数据作为角度字符串发送吗?说,

$scope.string = '<ul>'+
                '<div ng-repeat="rows in roleMenulistByID">'+
                '<li>{{rows.route_alias_name}}</li>'+
                '</div>'+
                '</ul>';

我怎样才能实现这一目标?如果我说

template : $scope.string

显示错误。请帮助&amp;提前谢谢。

1 个答案:

答案 0 :(得分:0)

您可以通过相应的属性传递template字符串,并在指令声明中使用function作为template属性的值:

angular.module('app', []).directive('test', function() {
  return {
    restrict: 'E',
    replace: true,
    template: function(el, attrs) {
      return attrs.template;
    }
  }
})
<script src="//code.angularjs.org/snapshot/angular.min.js"></script>

<div ng-app='app' ng-init='items=[1,2,3]'>
  <test template='<p ng-repeat="x in items">{{x}}</p>'><test>
</div>