angularJS提供了自定義指令的功能,指令可以定義自己的模板控制器,這個就類似於現在框架的組件,一個指令一般對應一個模板,
templateUrl: 'templates/exportTmp.html',
template:'<div>............</div>'
但有時候我們想動態改變加載的指令模板
1)合理使用ng-include
html:
<div ng-switch="myVar"> <div ng-switch-when="action"> <div ng-include="getTemplate('action')"></div> </div> <div ng-switch-when="view"> <div ng-include="getTemplate('view')"></div> </div> <div ng-switch-when="edit"> <div ng-include="getTemplate('edit')"></div> </div> <div ng-switch-default> <div ng-include="getTemplate('action')"></div> </div> </div>
js:
link: function ($scope, el, attr) { $scope.getTemplate = function(flag) { if(flag=='action') { template='./src/html/action.html'; } ..... return template; } }