我有使用Angular.js编写的元应用程序,我可以使用Angular创建应用程序,但有一些限制。我可以使用和创建指令并创建自动添加到$ route的页面。
我需要使用其他页面作为模板的指令widget
,但页面网址需要是动态的(基于属性)<widget name="page"/>
将包含使用name
属性的模板,这是我的代码:
return {
restrict: 'EA',
replace: true,
transclude: true,
compile: function(tElement, tAttrs, transclude) {
this.templateUrl = $route.routes['/<APP-NAME>/' + tAttrs.name].templateUrl;
}
};
我在想,也许我可以使用$ http来获取模板,但是我可以从编译函数返回promise以及如何替换模板吗?
答案 0 :(得分:3)
templateUrl
可以是一个函数。所以你可以写点像
function getUrl(tElement, tAttrs) {
return tAttrs.name;
}
return {
restrict: 'EA',
replace: true,
templateUrl: getUrl
};
Angular获取模板本身。