javascript - 在动态 templateUrl 指令中使用 promise

标签 javascript angularjs angularjs-directive angular-promise

我有一个 promise SharedData,它也返回一个变量服务 .template。该值是 mytemplate,我用它构建了一个 url,我想将其传递给 templateUrl 指令,但没有成功。

app.directive('getLayout', function(SharedData) {

var buildUrl= '';

SharedData.then(function(service) {
    buildUrl = service.template + '/layouts/home.html';
    console.log(buildUrl); // return mytemplate/layouts/home.html which is the URL I want to use as templateUrl
});

return {
    restrict: 'A',
    link: function(scope, element, attrs) {...},
    templateUrl: buildUrl
}
});

谢谢你帮助我!

最佳答案

我使用 $templateRequest 解决了我的问题

app.directive('getLayout', function($templateRequest, SharedData) {

return {

    restrict: 'A',

    link: function(scope, element, attrs) {

        SharedData.then(function(service) {

            myTemplate = $templateRequest(service.template + '/layouts/home.html');

            Promise.resolve(myTemplate).then(function(value) {
                element.html(value);
            }, function(value) {
                // not called
            });
        });
      }
    };
});

这是一个Plunker

希望这会帮助一些人 :) 并感谢@Matthew Green

关于javascript - 在动态 templateUrl 指令中使用 promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30106775/

相关文章:

javascript - 如何在基于图 block 的 javascript 游戏中拒绝某些图 block 上的移动?

angularjs - 没有 DOCTYPE 的 HTML 注释

javascript - 在 typescript 中创建指令以显示 Angular 加载进度

javascript - 在指令定义中返回对象与函数之间的区别?

javascript - AngularJS - 在模板中注入(inject)变量

javascript - 编辑路径剪辑以正确方式填充 svg

javascript - 我想在特定行中显示特定类别的框

javascript - 谷歌地图引用标记监听器

AngularJS - 同时按下多个按键

javascript - 修改当前的正则表达式以允许特殊字符