当与ng-repeat一起使用时,角度动态指令属性不进行评估

时间:2017-01-25 01:55:07

标签: javascript html angularjs angularjs-directive angularjs-ng-repeat

我尝试传入来自控制器列表的字符串,其中包含应该动态获取模板的模板名称(即template =" {{item.template}}& #34)

我试图用好的方法对我的问题做一些调试。的console.log。当templateUrl:function(...)进行求值时,似乎Angular没有评估模板=" {{item.template}}"结果是{{item.template}}而不是我列表中的字符串。

我错过了什么会导致Angular不评估列表中的字符串? 提前致谢!

HTML下方:

<workflow ng-controller="ModalController as modalController">
    <workflow-step ng-class="{'inactive' : index > 0 }" ng-repeat="(index,item) in modalController.list">           
         <dynamic-questions template="{{item.template}}"></dynamic-questions>
    </workflow-step>
</workflow>

这是DynamicQuestions指令,它应该动态使用上面代码片段中的模板值。

angular.module('app').directive('DynamicQuestions',
function () {
    return {
        restrict: 'E',            
        replace: true,          
        templateUrl: function (elem, attr) {                
            return '/app/templates/' + attr.template +'.html';
        }           
    };              
});

这是ModalController,它包含一个我打算用来控制动态模板的简单字符串列表

angular.module('app')
.controller('ModalController',
    function() {
        var self = this;

        self.list = [
            { template: "intro" },
            { template: "contactinfo" },
            { template: "mailingAddress" },
            { template: "dateOfBirth" }
            ];
    });

旁注: 我已经看到了一些动态指令的例子,其中在指令中使用了范围,然后使用链接函数来确定模板

scope: { template: '@'},template: '<ng-include src="getTemplateUrl()"/>'

也许这是实现目标的更好方法。

0 个答案:

没有答案