2
我環顧四周,還沒有找到適合我的答案。我有一個組件,使用John Papa的風格指南構建,向用戶顯示上傳的照片。AngularJS組件模板切換
我想實現一些視圖,類似於Windows,MacOS允許您在詳細縮略圖列表視圖之間切換。
因爲視圖是如此不同,並保持代碼處於可維護狀態,所以我想將這些模板保存在單獨的文件中。
那麼我該如何實現呢?
不同的方法是:
.directive('myDirective', function() {
return {
templateUrl: function (tElement, tAttrs) {
if (tAttrs.type) {
if (tAttrs.type === 'thumb') {
return 'thumbnail.html';
}
if (tAttrs.type === 'list') {
return 'list.html';
}
if (tAttrs.type === 'detail') {
return 'detail.html';
}
}
}
}
});
的這裏的問題是,模板早就決定,不能改變,直到刷新。
<ng-switch on="post.viewMode">
<ng-switch when="thumbnail" ng-include="'./thumbnail.html'">
<ng-switch when="list" ng-include="'/list.html'">
<ng-switch when="detail" ng-include="'/detail.html'">
</ng-switch>
這似乎是最好的,但NG-包括創建一個新的範圍,其拋出了我的組件結構,一切都必須通過範圍進行訪問。$ parent.variable
最後一個選項是把所有將三個視圖放到同一個html模板文件中並使用ng-if使用正確的視圖。