2016-09-23 6 views
1

画面サイズに応じて異なるHTMLテンプレートを読み込みたいとします。Angularディレクティブを使用したテンプレートの条件付き読み込み

コントローラー:

$scope.getTemplateUrl = function() { 
    if ($scope.md) { 
     return $templateCache.get('library/timelineeditor/slidelibrary/slidelibrary.html') 
    } else { 
     return $templateCache.get('library/timelineeditor/slidelibrary/slidelibrary-mobile.html') 
    } 
    } 

指令:

function SlideLibrary() { 
    return { 
    restrict: 'E', 
    scope: {}, 
    bindToController: true, 
    controller: 'SlideLibraryController', 
    controllerAs: 'vm', 
    template: '<ng-include src="getTemplateUrl()"/>' 
    }; 
} 

それは右のテンプレートをロードしていますが、PICで見ることができるように何かが道に沿ってうまくいかない:

enter image description here

これに関するベストプラクティスはありますか、それをどうやって行うかについてのアドバイスはありますか?

答えて

1

現在あなたがそのテンプレートを取得するためのAJAXをしようとしているsrctemplate contentを渡しているあなたは、コンソールに404エラーを見ることができる理由、それはです。 URLフォームgetTemplateUrlを返すだけです。 srcng-includetemplateUrlのみを受け入れるため、そのテンプレートをdivにロードする際には注意が必要です。

$scope.getTemplateUrl = function() { 
    if ($scope.md) { 
     return 'library/timelineeditor/slidelibrary/slidelibrary.html'; 
    } else { 
     return 'library/timelineeditor/slidelibrary/slidelibrary-mobile.html'; 
    } 
} 
関連する問題