如何让静态 header 包含动态内容?
How to have a static header with dynamic content?
所以,我的 XML 中有这个静态 header:
<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 中得到一个空值,对吧?好吧,问题是,在通过 Header 所在的索引之前,无法进入 "Main" 屏幕。
我只需要知道我在这里做的是糟糕的事情还是没问题。
编辑:
根据使用服务的建议,我是这样做的:
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";
})
Header 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>
$ngRoute
是你需要完成的。这里是ngRoute Docs
您可以使用服务在控制器之间共享数据。将全局变量保持在绝对最小值。
所以,我的 XML 中有这个静态 header:
<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 中得到一个空值,对吧?好吧,问题是,在通过 Header 所在的索引之前,无法进入 "Main" 屏幕。
我只需要知道我在这里做的是糟糕的事情还是没问题。
编辑:
根据使用服务的建议,我是这样做的:
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";
})
Header 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>
$ngRoute
是你需要完成的。这里是ngRoute Docs
您可以使用服务在控制器之间共享数据。将全局变量保持在绝对最小值。