包含从属性创建TemplateUrl的页面的指令

时间:2014-04-09 16:48:25

标签: javascript angularjs angularjs-directive

我有使用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以及如何替换模板吗?

1 个答案:

答案 0 :(得分:3)

templateUrl可以是一个函数。所以你可以写点像

function getUrl(tElement, tAttrs) {
  return tAttrs.name;
}

return {
  restrict: 'EA',
  replace: true,
  templateUrl: getUrl
};

Angular获取模板本身。