私の問題に対処するために、私はしなければなりませんでした
1) $rootScope を 2 番目のコントローラーに渡す
App.controller($rootScope) {
2) 2 番目のコントローラーの関数を $rootScope に設定します
$rootScope.functionCall = 関数 () {};
3) 渡された値を $rootScope ($rootScope.orderId) に設定します
$rootScope.functionCall = function () {
Service.getItems($rootScope.orderId).success(
function(results) {
$scope.items = results;
});
};
4) ユーティリティ コントローラー内で、結果をループして解析し、#3 でわかるように $rootScope に設定します。「$rootScope.orderId」を初期化しています。
angular.forEach(results, function (value, key) {
if (key != null) {
$parse(key).assign($rootScope, value);
}
});
5) サービスコール内からコントローラーの関数を再呼び出ししています! これは、私の変数を「スコープ内」に置く魔法をしたものです
$rootScope.functionCall();
6)機能が存在するかどうかをテストして、さまざまなページがユーティリティコードを利用するが、実行する機能がない可能性があるかどうかを確認しています
if (typeof $rootScope.functionCall == '関数')
var setSession = function () {
UtilityService.getSession().success(
function (results) {
// Place the rootscope sessions in scope
angular.forEach(results, function (value, key) {
if (key != null) {
$parse(key).assign($rootScope, value);
}
});
// Have to bypass "scope" issues and thus have to execute these fns()
if (typeof $rootScope.functionCall == 'function') {
$rootScope.functionCall();
}
});
};
setSession();