簡単な例として、これが私が思いついたものです。これを実現する方法はたくさんあります。さらに微調整が必要な場合は、を使用する代わりに独自のディレクティブを作成することもできますng-include/ng-repeat
。
ライブデモはこちら
うーん、plnkr は現在いくつかの問題を抱えています。ページがロードされる場合でも、テンプレートを見つけるのに問題があるようです (コンソール ログを参照してください。それらをロードしようとしているため、コードは正常に動作しています)。これも jsbin のデモですが、テンプレートは何もロードしません (空です)。
<div ng-repeat="lazy in loaded">
{{lazy}}
<div ng-include="lazy"></div>
</div>
<button ng-click="loadNext()">Load Next</button>
<button ng-click="unload()">Reset</button>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
var toLoad = [ //list the templates to be loaded
'tmpl.html',
'tmpl2.html',
'tmpl3.html'
];
$scope.loaded = []; //anything in here will be loaded to the page
$scope.loadNext = function() {
if (toLoad.length) { //if there are any item left to load
$scope.loaded.push(toLoad.splice(0, 1)[0]); //move first item to "loaded"
}
};
$scope.unload = function() {
toLoad = $scope.loaded.splice(0, $scope.loaded.length); //move all items back to "toLoad"
};
});