如何使用动态内容的静态标头?

时间:2015-01-28 19:36:13

标签: javascript html angularjs ionic-framework

所以,我的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>  

2 个答案:

答案 0 :(得分:1)

您可以使用服务在控制器之间共享数据。将全局变量保持在绝对最小值。

答案 1 :(得分:0)

$ngRoute是您完成此任务所需要的。以下是ngRoute Docs