Показать сообщение отдельно
  #4 (permalink)  
Старый 17.07.2014, 18:27
Интересующийся
Отправить личное сообщение для dtzscln Посмотреть профиль Найти все сообщения от dtzscln
 
Регистрация: 16.07.2014
Сообщений: 15

Посмотрел видео, но всё равно не понимаю.
EggHead в видео Sharing Data Between Controllers приводит ну совсем уж элементарный пример.
Можете объяснить на простом примере, как сделать взаимодействее между контроллерами через сервис?

<div ng-controller="MainController">
	<h1>{{ name }}</h1>
</div>

<div ng-controller="AsideController">
	<button ng-click="changeName()">change name</button>
</div>


myApp.factory("fac", function($rootScope) {
	var name = "ivan";
	return {
		setName: function(n) {
			name = n;
		},
		getName: function() {
			return name;
		}
	};
});


function MainController($scope, fac) {
	$scope.fac = fac;
	$scope.name = $scope.fac.getName();
}


function AsideController($scope, fac) {
	$scope.fac = fac;
	$scope.changeName = function() {
		$scope.fac.setName("another name");
	}
}


http://jsfiddle.net/HB7LU/5044/

Возможно, существует какое-нибудь красивое решение через $apply() и $watch()?

Последний раз редактировалось dtzscln, 17.07.2014 в 18:40.
Ответить с цитированием