2
我正在尝试制作一个角度指令,该指令基于放置在指令上的属性呈现动态内容url。例如:将呈现的字符串传递到Angular指令
指令:
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
属性由控制器的字符串进行填充。所以我们可以说该控制器使用名为“家”中的“controllerAs”语法,我想的HTML阅读:
<div my-content content-url="{{home.myContent.url}}"></div>
但是内指令的templateUrl功能,contentUrl
属性被逐字发送为“ {{home.myContent.url}}”。如何在运行templateUrl函数之前获取此值以进行评估?或者,有没有更好的方法可以从指令中获得简单的动态内容?
应尽可能通过adding'scope:{conentUrl: '='}'你的指示功能,并在HTML中使用它时省略大括号。然后你需要$在指令中观察$ scope.contentUrl的值。另外,你也应该能够在指令的链接函数中使用$ attr。$ observe,尽管我没有太多的经验。谷歌是你的朋友:-) – cYrixmorten
听起来像你试图重新创建ng-include本身已经做的角色。除非你为了学习的目的而重新创建它,否则我只是使用ng-include。否则,查看源代码以查看它们是如何执行的可能不是一个坏主意。 –