ng-init をキューに入れることは可能ですか? 一般に、最初の初期化では JSON ファイルをプロトタイプ変数 (配列) に追加し、パラメーターに応じて別の初期化で getJsonData() をスキップするか、他の JSON ファイルをプロトタイプに追加します。
function init(param) {
console.log("startInit");
// big JSON file
var promise = getJSON(param);
return promise.then( function() {
//some func
console.log("finish");
return true;
});
};
function getJSON(param) {
var deferred = $q.defer();
console.log("startInitDataInner");
someService.getJsonData(param).then(function(data) {
// some code
console.log("endInitDataInner");
deferred.resolve();
}, function(error) {
deferred.reject();
});
return deferred.promise;
};
ビューで ng-init
ng-init="init(param)"
ng-init="init(param)"
// ...
およびログ:
startInit
startInitDataInner
startInit
startInitDataInner
endInitDataInner
finish
endInitDataInner
finish
//..
編集:
一般的に、jQuery でプラグインのようなものを作成したいと考えています。私はこのコードを持っています:
<div ng-controller="parentController as parent">
<div ng-controller="childController as child" ng-init="child.init(parent.data)"></div>
</div>
<div ng-controller="parentController as parent">
<div ng-controller="childController as child" ng-init="child.init(parent.data2)"></div>
</div>
ユーザーによる構成可能な部分:
angular.module('myApp').controller('parentController', ['$scope', function($scope) {
this.data = {
config: {
lang: "en",
title: "title"
}
};
this.data2 = {
config: {
lang: "pl",
title: "title2"
}
};
}]);
ng-init 更新 API:
angular.extend(this, parent.data);
どうすればいいのか、何か考えはありますか?