Итак, у меня есть этот статический заголовок в мой 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>
Вы не должны использовать глобальные переменные, подобные внутри ваших контроллеров. Является ли ваша цель распределять ценности между контроллерами? Вы можете использовать сервисы для этого. –
http://codereview.stackexchange.com/ –
не используют глобальные переменные, используйте угловые службы для обмена данными – charlietfl