[英]Sharing data between two controllers in angularjs
Inside homeController file I have function 在homeController文件里面我有功能
$scope.MyFunction = function () {
$http({
method: 'POST',
url: '/SomeUrl/ActionToDo',
data: { id: 1001 },
}).success(function (response) {
if (response.Status == 1) {
//success to do
}
$modal.open({
controller: 'modalController',
templateUrl: '/app/views/modalTemplate.html',
resolve: {
myData: function () {
return response;
}
}
});
} else {
alert(error);
}
}).error(function () {
alert('Error!');
});
}
Where I'm calling modalController to open modal window. 我在哪里调用modalController来打开模态窗口。 Question is how can I pass data to this controller (modalController) from homeController in order to inject currently selected language which is available inside homeController in variable
$scope.selLanguage
问题是如何从homeController传递数据到这个控制器(modalController),以便注入当前选择的语言,该语言在变量
$scope.selLanguage
You can inject it into controller as resolve dependency: 您可以将其作为解析依赖项注入控制器:
$modal.open({
controller: 'modalController',
templateUrl: '/app/views/modalTemplate.html',
resolve: {
myData: function () {
return response;
},
language: $scope.selLanguage
}
});
so it will be available in controller as service 所以它将在控制器中作为服务提供
.controller('modalController', function(myData, language) {
console.log(language);
})
passed the data as locals to the modal controller using resolve. 使用resolve将数据作为本地传递给模态控制器。
resolve: {
myData: function () {
return response;
},
modalVar: $scope.selLanguage
}
In modalController refer that variable as it is local to that modalController controller. 在modalController中引用该变量,因为它是该modalController控制器的本地变量。
angular.module('demo').controller('modalController', function ($scope, $modalInstance, modalVar) {
$scope.modalVar= modalVar;
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.