动态生成模板中缺少角度表达式

时间:2014-04-21 20:37:52

标签: angularjs angularjs-directive

我遇到了动态生成的指令(使用函数)和在最终标记中筛选出的角度表达式的问题。我创建了JSFiddle displaying the problem here

我正在动态生成模板,因为我们需要一种基于元素内部属性生成标记的方法。

基本上定义像这样的表达式时:

angular.module('ui.directives', []).directive('uiBar', function() {
    return {
        restrict: 'E',
        template: function(element, attrs) {
            console.log('hello');
            return '<div>lol: {{ user }}</div>';
        }
    };
});

然后将它放入体内:

<div ng-app="myApp">
    <ui-bar>I should change to iambar</ui-bar>
</div>

结果标记为:

<div ng-app="myApp" class="ng-scope">
    <ui-bar><div class="ng-binding">lol: </div></ui-bar>
</div>

由于某种原因,表达被剥离了。有没有人经历过这个?

1 个答案:

答案 0 :(得分:0)

我不太明白你想用动态生成的模板完成什么。以下是我通常要解决的例子。

HTML看起来像这样。

<ui-bar new-value="hello">I should change</ui-bar>

该指令的return语句看起来像这样

return {
  restrict: 'E',
  template: "<div>lol: {{ user }}</div>",

  link: function (scope, element, attrs){
    scope.user = attrs.newValue;
  } // end link
} // end return

以上代码适用于您的jsFiddle。

如果您可以添加更多信息,我们可以提供更多示例。