Я хочу обмениваться данными между контроллерами:Обмен данными с контроллерами между с завода, AngularJS
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-rc.4/angular.min.js"></script>
<script>
var myApp = angular.module('myApp',[]);
myApp.factory('Data', function(){
return {show: true, text: "Hello"};
});
myApp.controller('ctrl1', ['$scope', 'Data', function($scope, Data) {
$scope.data = Data;
}]);
myApp.controller('ctrl2', ['$scope', 'Data', function($scope, Data) {
$scope.click = function(){
Data = {text:"Hello2", show:true};
}
}]);
</script>
<body ng-app='myApp'>
<div style="background-color:red;margin-top:30px;" ng-controller="ctrl1">
{{data.text}}
</div>
<div style="background-color:yellow;margin-top:30px;" ng-click="click()" ng-controller="ctrl2">
Click to change data
</div>
</body>
Demo http://plnkr.co/edit/QHuWLYjBqDvl20fL7eeu?p=preview. Это не работает, однако, если я пишу
Data.text = 'Hello2';
Data.show = true;
Он отлично работает. Демо http://plnkr.co/edit/xKtLUlBu0dQPUsiNCRyC?p=preview
Было бы очень полезно просто обновить модель, просто указав Json, как я могу это сделать?
Я боюсь, что вы связаны же plnkr в обоих случаи – maurycy
@maurycy Извините, исправлено сейчас, я думаю – user1506145