将呈现的字符串传递给Angular指令

时间:2016-11-16 13:38:53

标签: angularjs templates dynamic angularjs-directive attributes

我正在尝试制作一个角度指令,根据指令上的属性呈现动态内容网址。例如:

指令:

angular
    .module('myModule')
    .directive('myContent', directive);

function directive() {
    return {
        replace: true,
        templateUrl: function (elem, attrs) {
            return attrs.contentUrl;
        }
    };
}

HTML:

<div my-content content-url="url/to/my-content.html"></div>

然而,我想要的是content-url属性由控制器中的字符串填充。所以,让我们说控制器正在使用&#34; controllerAs&#34;名称为&#34; home&#34;的语法,我希望html读取:

<div my-content content-url="{{home.myContent.url}}"></div>

但是在指令的templateUrl函数中,contentUrl属性按字面意思发送为&#34; {{home.myContent.url}}&#34;。如何在运行templateUrl函数之前获取此值?或者,是否有更好的方法可以从指令中获得简单的动态内容?

1 个答案:

答案 0 :(得分:0)

答案由@ crhistian-ramirez提供:

只需使用ng-include

即可
<div ng-include="vm.myContent.url"></div>