AngularJS를 사용한 데이터 바인딩에 대해 설명하고 싶습니다. 배열을 사용하고 여러 컨트롤러와 공유하고 싶습니다.서비스와 컨트롤러 간의 AngularJS 데이터 바인딩
컨트롤러가 서비스중인 데이터를 수정할 때 다른 컨트롤러에서 변경 사항이 계정에 반영되었다고 가정합니다. html 템플릿이 자동으로 업데이트되었습니다.
불행하게도, 내가 아니라 내가 옵저버 패턴 또는 angular.copy이 사용하기 때문에 각도 방식으로, 약간의 성공 ...
나는 순수한 각도 방법을 시도
, 그것은 작동하지 않습니다. 여기코드 예 : 공유
app.factory("MyService", [
function() {
myTableToShare = [];
return {
myTableToShared : myTableToShare,
};
}
에 datas 포함
서비스
]);
서비스의 데이터를 수정하는 제어기
app.controller('AddCtrl', [
'$scope', 'MyService', function ($scope, MyService) {
$scope.myService = MyService;
$scope.addElementToSharedTable = function(element) {
$scope.myService.myTableToShare.push(element);
};
}]);
템플릿에 테이블 요소 * 인쇄
app.controller('ReadCtrl', [
'$scope', 'MyService', function ($scope, MyService) {
$scope.myService = MyService;
}]);
** 템플릿을 표 datas를 인쇄 할 수 있도록 제어기 *
<div ng-controller="ReadCtrl">
<ul >
<li ng-repeat="element in myService.myTableToShare">
<span>{{element.id}} - {{element.name}}</span>
</li>
</ul> </div>
differents HOWTO 덕분에이 방법을 적용했습니다. 불행히도이 HOWTO는 배열 객체가 아니라 String을 사용한다. 따라야 할 길입니까?
기다리는 중 나는 패턴 관찰자를 적용하고 컨트롤러에서 서비스로 이벤트를 알린다.하지만 나에게도 너무 장황하기 때문에 좋은 해결책이 아닌 것 같다.
Thaks
'myTableToShared : myTableToShare' 유형을 확인하셨습니까? plunkr이나 jsfiddle을 설치해 주시겠습니까? – apairet