AngularJs - 动态模板

时间:2015-02-20 10:39:36

标签: angularjs templates dynamic angularjs-directive

我正在尝试为动态模板实现指令。根据下拉列表中选择的内容,模板应该更改。到目前为止,我只管理在页面加载时实现动态,但是当下拉列表中的值更改时,模板保持不变..`(function(){     '使用严格的';

// directive for loading incomeinformation, regular or military
angular.module('myModule').directive('dynamicTemplate', templateControl);

templateControl.$inject = [];

function templateControl() {
    var directive = {
        controller: mycontroller,
        controllerAs: 'mycontrollerCtrl',
        bindToController: true,
        restrict: 'E',
        template: '<ng-include src="mycontrollerCtrl.getTemplateUrl()"/>'
    };

    return directive;

    function mycontroller($attrs, $element, $scope, $compile) {
        var vm = this;
        vm.getTemplateUrl = getTemplateUrl;           
        function getTemplateUrl() {
            if ($attrs.templateId == 1)
                return "test1.html";
            if ($attrs.templateId == 3)
                return "test1.htm2";

            return "test3.html";
        }
    }
}

})();`

在html中:<dynamic-template templateid="{{model.TemplateId}}"></imp-dynamic-template>

1 个答案:

答案 0 :(得分:1)

在html中:属性名称必须为&#34; template-id&#34;因为你像$ attrs.templateId

那样访问它