2

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);

どうすればいいのか、何か考えはありますか?

4

1 に答える 1

0

そうですね、Angular を使用している場合は、コントローラーを使用します。コントローラ itslfmin の一般的な意味は何ですか? そうですね、コンストラクタ関数です。ここでのメイン ワードはfunctionです。一般的に機能するのは何ですか?内部でコードを実行します。

したがって、最初のロジックをコントローラーコードの先頭に配置するだけで (ただし、別の関数としてラップすることはありません)、コントローラーが角度リゾルバーによって解決されるのにちょうど間に合うように実行されます。

var controller = function () {
    // vars, costs, etc.
    console.log("startInit");

    // big JSON file
    var promise =  getJSON(param);  
    return promise.then( function() {
        //some func
        console.log("finish");
        return true;
    });

};
于 2016-01-03T22:26:54.680 に答える