2015-01-28 3 views
0

Итак, у меня есть этот статический заголовок в мой XML:Как создать статический заголовок с динамическим контентом?

<ion-header-bar class="bar-positive has-tabs-top" ng-controller="HeaderCtrl as header"> 
    <h3 class="title">{{ header.headerTitle }}</h3> 
</ion-header-bar> 

И у меня есть эти два контроллера:

var HeaderCtrl; 

angular.module('ido.controllers', []) 

.controller("HeaderCtrl", function HeaderFunctions(){ 

    HeaderCtrl = this; 

    HeaderCtrl.headerTitle = "aa"; 
}) 

.controller("MainCtrl", function MainFunctions() { 

    HeaderCtrl.headerTitle = "bb"; 
}) 

И это работает! Однако у меня создается впечатление, что я делаю это плохо. Я имею в виду, я мог бы получить нулевое значение из HeaderCtrl, верно? Ну, дело в том, что нет способа перейти на «Главный» экран перед тем, как пройти через Индекс, где находится Заголовок.

Мне просто нужно знать, делаю ли я что-то ужасное здесь, или все в порядке.

EDIT:

В соответствии с предложением, чтобы воспользоваться услугами, это то, что я сделал:

services.js:

angular.module('ido.services', []) 

.service("HeaderService", function SetHeaderTitle() { 

    var HeaderService = this; 

    HeaderService.HeaderTitle = ""; 
}); 

controllers.js:

angular.module('ido.controllers', []) 

.controller("HeaderCtrl", function HeaderFunctions(HeaderService){ 

    var HeaderCtrl = this; 

    HeaderCtrl.HeaderService = HeaderService; 

    HeaderCtrl.HeaderService.HeaderTitle = "Login Header"; 
}) 

.controller("MainCtrl", function MainFunctions(HeaderService) { 

    var MainCtrl = this; 

    MainCtrl.HeaderService = HeaderService; 

    MainCtrl.HeaderService.HeaderTitle = "Main"; 
}) 

Заголовок HTML:

<ion-header-bar class="bar-positive has-tabs-top" ng-controller="HeaderCtrl as HeaderCtrl"> 
    <h3 class="title">{{ HeaderCtrl.HeaderService.HeaderTitle }}</h3> 
</ion-header-bar> 
+0

Вы не должны использовать глобальные переменные, подобные внутри ваших контроллеров. Является ли ваша цель распределять ценности между контроллерами? Вы можете использовать сервисы для этого. –

+0

http://codereview.stackexchange.com/ –

+0

не используют глобальные переменные, используйте угловые службы для обмена данными – charlietfl

ответ

1

Вы можете использовать службы для обмена данными между контроллерами. Держите глобальные переменные до абсолютного минимума.

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