어떤 컨트롤러에서 다른 피어 컨트롤러로 일부 데이터를 전달하려면 어떻게 해야 합니까?
다음의 2개의 피어 컨트롤러가 있습니다.여기에는 부모가 없습니다.
<div data-ng-controller="Controller1">
</div>
<div data-ng-controller="Controller2">
The value of xxx is: {{ xxx }}
</div>
angular.module('test')
.controller('QuestionsStatusController1',
['$rootScope', '$scope'
function ($rootScope, $scope) {
// How can I set the value of xxx in the HTML that's part of Controller2
}]);
angular.module('test')
.controller('QuestionsStatusController2',
['$rootScope', '$scope',
function ($rootScope, $scope) {
}]);
Controller 1에서 Controller 2에 의해 제어되는 HTML 변수 xxx의 값을 갱신하고 싶습니다.제가 할 수 있는 방법이 있을까요?
이를 위해 서비스를 사용합니다.
MyApp.app.service("xxxSvc", function () {
var _xxx = {};
return {
getXxx: function () {
return _xxx;
},
setXxx: function (value) {
_xxx = value;
}
};
});
다음으로 이 서비스를 양쪽 컨트롤러에 주입합니다.
Controller1에서는 서비스에 대한 호출과 함께 공유 xxx 값을 설정해야 합니다.xxxSvc.setXxx(xxx)
마지막으로 Controller2에서 다음과 같이 이 서비스의 getXx() 함수에 $watch를 추가합니다.
$scope.$watch(function () { return xxxSvc.getXxx(); }, function (newValue, oldValue) {
if (newValue != null) {
//update Controller2's xxx value
$scope.xxx= newValue;
}
}, true);
컨트롤러 간에 데이터를 공유하기 위해 서비스를 반드시 사용하세요.다음의 예를 제시하겠습니다.$180은 방법이 아닙니다. 더 적절한 방법이 있을 때 이벤트 시스템을 사용하지 마십시오.글로벌 상수의 경우 '서비스', '값' 또는 '상수'를 사용합니다.
http://plnkr.co/edit/ETWU7d0O8Kaz6qpFP5Hp
다음은 페이지에서 데이터 미러를 볼 수 있도록 입력 예를 보여드리겠습니다.http://plnkr.co/edit/DbBp60AgfbmGpgvwtnpU
var testModule = angular.module('testmodule', []);
testModule
.controller('QuestionsStatusController1',
['$rootScope', '$scope', 'myservice',
function ($rootScope, $scope, myservice) {
$scope.myservice = myservice;
}]);
testModule
.controller('QuestionsStatusController2',
['$rootScope', '$scope', 'myservice',
function ($rootScope, $scope, myservice) {
$scope.myservice = myservice;
}]);
testModule
.service('myservice', function() {
this.xxx = "yyy";
});
1개의 컨트롤러로 다음 작업을 수행할 수 있습니다.
$rootScope.$broadcast('eventName', data);
다른 곳에서 이벤트를 듣습니다.
$scope.$on('eventName', function (event, data) {...});
를 사용해야 합니다.
$rootScope.$broadcast()
컨트롤러에서 데이터를 전송해야 합니다.그리고 그 데이터들을 수신한 쪽에서는
$scope.$on
여기 얼마 전에 포크를 한 바이올린이 있다(누가 먼저 했는지 모르겠다).
http://jsfiddle.net/patxy/RAVFM/
언급URL : https://stackoverflow.com/questions/18856153/how-can-i-pass-some-data-from-one-controller-to-another-peer-controller
'source' 카테고리의 다른 글
키 값으로 JSON 필터링 (0) | 2023.03.07 |
---|---|
전쟁 파일과 컨테이너가 내장된 실행 가능 항아리 전개에 대한 조언 (0) | 2023.03.07 |
다른 테이블스페이스에서 오라클 덤프를 가져오는 방법 (0) | 2023.03.07 |
Oracle varchar 값에서 문자의 발생 횟수를 계산하는 방법은 무엇입니까? (0) | 2023.03.07 |
AngularJS에서 입력 필드의 첫 번째 문자를 자동 자본화하는 방법은 무엇입니까? (0) | 2023.03.07 |