所以,我的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获取一个空值,对吗?嗯,问题是,没有办法去&#34; Main&#34;通过索引之前的屏幕,这是标题所在的位置。
我只需要知道我是否在这里做了一件非常糟糕的事情,或者它本来就很好。
编辑:
根据建议使用服务,这就是我所做的:
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 :(得分:1)
您可以使用服务在控制器之间共享数据。将全局变量保持在绝对最小值。
答案 1 :(得分:0)
$ngRoute
是您完成此任务所需要的。以下是ngRoute Docs