我這種情況
兩個文件,無論是在相同的應用程序
var app = angular.module('myapp');
文件一個是父,我有:
app.controller("ControllerOne", ['$scope', '$http', '$modal',
function ($scope, $http, $modal) {
$scope.$on('refreshList', function (event, data) {
console.log(data);
});
$scope.openModal = function() {
var modalInstance = $modal.open({
templateUrl: '/SomeFolder/FileWithControllerTwo',
controller: 'ControllerTwo',
size: 'lg',
resolve: {
someParam: function() {
return "param"
}
}
});
}
}]);
文件中的兩個是小孩,我有:
app.controller("ControllerTwo", ['$scope', '$http', 'someParam',
function ($scope, $http, someParam) {
$scope.SaveSomething = function() {
$http.post(url, obj)
.success(function (data) {
$scope.$emit('refreshList', [1,2,3]);
}).error(function() {
});
};
}]);
假設我可以打開模式,我可以「SaveSomething」。
我需要做些什麼來從ControllerTwo發送一些數據給ControllerOne?
我已經檢查過這個職位Working with $scope.$emit and .$on 但我無法解決問題呢。
觀測數據:
- FileOne.js - >我有ControllerOne(parrent) - > $上
- FileTwo.js - >我有ControllerTwo(孩子) - > $發出
- 是的,我可以打到$ http.post.success裏面的代碼
hello @ajkavanagh 非常感謝你 只需提供模態子$範圍解決了我的問題。 現在我可以從父控制器調用一個函數,並將我想要的數據傳遞給$之前,現在它工作正常。 –
Hi @GilianMoa:只是爲了澄清:你是否不需要使用'$ scope。$ parent。$ emit(...)'來發送消息。即'$ scope。$ emit(...)'工作了嗎?如果是這樣,我會修改我的答案來澄清這一點。謝謝。 – ajkavanagh
嗨@ajkavanagh, 我不需要使用$ emit和$ on, 只是通過$範圍,當我打開模式已經解決了我的問題 –