将模板URL传递给angularjs指令

时间:2014-10-19 06:37:29

标签: javascript angularjs angularjs-directive

有没有办法将带有模板url的字符串对象传递给指令? 我的解决方案无法正常运行。

使用Javascript:

function moduleView() {
    return{
      restrict: 'A',
           templateUrl: function (elem, attr) {
               return attr.url;
                }
            };
        };
function ModulesCtrl($scope, ModulesService) {
    $scope.modules = [];

    $scope.run = function () {
        ModulesService.loadModules(function (items) {
            $scope.modules = items;
        });
    };

    $scope.run();
};

HTML(玉):

ul(ng-repeat="item in modules")
    div(module-view url="item.path")

item.path是一个带有模板url的字符串。

但这段代码不起作用。我有这个错误:

Error: [$compile:tpload] Failed to load template: item.path

1 个答案:

答案 0 :(得分:0)

有多种方法可以做到这一点 - 最简单的方法是使用ng-include来包含模块的模板。

有关示例,请参阅此plunker

当然,也可以在指令中添加scope变量,然后使用该变量执行ng-include