我有用Angular.js编写的元应用程序,可以使用Angular创建应用程序,但有一些限制。我可以使用和创建伪指令并创建自动添加到$ route的页面。

我需要指令widget,它将使用其他页面作为模板,但是页面url需要是动态的(基于属性)。<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以及如何替换模板吗?

最佳答案

templateUrl可以是一个函数。所以你可以写类似

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

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


Angular获取模板本身。

关于javascript - 从属性创建TemplateUrl的包含页面的指令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22968981/

10-12 03:34