为了解决我的问题,我不得不
1) 将 $rootScope 传递到我的第二个控制器中
应用程序控制器($rootScope){
2) 将我的第二个控制器的功能设置为 $rootScope
$rootScope.functionCall = 函数 () {};
3) 将我传递的值设置为 $rootScope ($rootScope.orderId)
$rootScope.functionCall = function () {
Service.getItems($rootScope.orderId).success(
function(results) {
$scope.items = results;
});
};
4)在我的实用程序控制器中,我遍历我的结果,解析它们,并将它们设置为 $rootScope,如您在 #3 中所见,我正在初始化“$rootScope.orderId”
angular.forEach(results, function (value, key) {
if (key != null) {
$parse(key).assign($rootScope, value);
}
});
5)我正在从我的服务调用中重新调用控制器的功能!这就是我将变量“置于范围内”的魔力
$rootScope.functionCall();
6)我也在测试该功能是否存在导致不同的页面使用实用程序代码但可能没有该功能可以执行
if (typeof $rootScope.functionCall == 'function')
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();