2014-01-16 145 views
1

在AngularJS指令,指令有一個模板,像這樣:更新指令的模板AngularJS

app.directive('exampleDirective', ['$http', 
function($http) { 

    return { 
     restrict : 'A', 
     template : '<div>Example Template Content</div>', 
     link : function(scope, element, attrs, controller) { 
     } 
    }; 
}]); 

是否有動態變化的根據發生的動作,例如點擊更改指令模板與模板的方法嗎?

回答

2

你有很多的選擇取決於你需要什麼,plunker

app.directive('mydir',function($compile){ 
    return { 
    restrict : 'A', 
    template : '<div>Example Template Content</div>', 
    link : function(scope, element, attrs, controller) { 

     var newTemplate = "<div>changed</div>"; 

     // if you need to compile: 
     newTemplate = angular.element(newTemplate); 
     $compile(newTemplate)(scope); 

     element.on('click', function(){ 
     element.empty(); 
     element.append(newTemplate) 
     }); 
    }  
    } 
}) 

如果你能更具體,我會舉些例子。