2014-12-09 3 views
0

Следующая plunker может описать проблему я столкнулся лучше: http://plnkr.co/edit/y7BMdyRhj2WvFXq0UUud?p=previewКак обновить контекстные переменный во всех названных видах в Angular-UI-маршрутизатор

Я хотел бы изменить значение resAVal переменных, которая является $rootScope переменная по всем названным видам A, B и C. Все названные виды AES управляются одним и тем же контроллером MainCtrl.

resAVal может быть обновлен в названном виде A.

Мне просто нужна переменная resAVal, обновленная во всех именованных представлениях как-то, она не должна быть переменной $rootScope.

Может ли кто-нибудь помочь мне с этим?

+1

вместо использования контроллера записывайте каждое из своих представлений в качестве директив, перемещайте переменную в службу и вводите службу в каждую директиву. Прямо сейчас ваши взгляды очень связаны. –

+0

@Avraam: Невозможно ли обновить «resAVal» для всех названных представлений в текущей системе? – skip

+0

Я не могу понять, зачем это делать. Я напишу ответ, объясняющий. –

ответ

1

Вот рабочая http://plnkr.co/edit/5Ut80w4dhO6IQmSSlx6f?p=preview

Я бы написал так:

app.directive('aview',['FruitService', function(FruitService){ 
    return { 
    templateUrl: 'a.html', 
    restrict: 'C', 
    link: function($scope){ 
     $scope.resAVal = FruitService.resAVal; 
    } 
    } 
} 
]); 

app.directive('bview',['FruitService', function(FruitService){ 
    return { 
    templateUrl: 'b.html', 
    restrict: 'C', 
    link: function($scope){ 
     $scope.resAVal = FruitService.resAVal; 
    } 
    } 
} 
]); 

app.directive('cview',['FruitService', function(FruitService){ 
    return { 
    templateUrl: 'c.html', 
    restrict: 'C', 
    link: function($scope){ 
     $scope.resAVal = FruitService.resAVal; 
    } 
    } 
} 
]); 

app.factory('FruitService', function(){ 
    return { resAVal : 5 } 
}); 

А на самом деле вы даже не должны делать $scope.resAVal = FruitService.resAVal; в каждой директивы, вы можете сделать $scope.resAVal=yourvalue на заводе и просто впрыснуть фабрика в каждой директиве

+0

Ты абсолютно прибил его! Чистый блеск. Спасибо :) – skip

+0

@skip Надеюсь, что это поможет;) –

Смежные вопросы