我的一个组件基于路由从MongoDB中提取页面 Headers (和内容),并将 Headers 存储在该组件类的实例变量中 . 在 <title> 标签中为一些变量显示如 <title>Site Title | {{pageName}}</title> 的最佳方法是什么? <title> 标记超出了组件的范围 . 也许一个控制器适合这个用例,但我不确定控制器指令或根对象的状态是什么 . 我考虑过提供服务并将其注入两者,但这似乎有些过分 . 有一个更好的方法吗?谢谢!
<title>
<title>Site Title | {{pageName}}</title>
你可以使用类似的东西
<title ng-bind="header"></title>
然后在你的控制器里面
testController = function($scope, $rootScope) { $scope.someFunction = function() { $rootScope.header = "Test"; } }
我最终制作了一个新的组件和服务 .
我简化了 index.html (几乎没有变化):
index.html
<html ng-app> <title>Site Title</title> </head> <body></body>
存储一个变量的服务:
import 'package:angular/angular.dart'; @Injectable() class Global { String pageTitle; Global(); }
带有 Headers 选择器的组件:
library title; import 'package:angular/angular.dart'; import 'package:mypackage/service/global.dart'; @Component( selector: 'title', template: 'Site Title | {{titleComp.global.pageTitle}}', publishAs: 'titleComp', useShadowDom: false) class TitleComponent { final Global global; TitleComponent(this.global); }
然后我将Global注入另一个组件,并在加载新页面时修改 global.pageTitle .
global.pageTitle
我很想听到对此的任何改进或使用根控制器或根范围的方法 .
我认为angular能够在body标签之外进行任何插值 . 最好的办法是使用Document.title()方法 .
3 回答
你可以使用类似的东西
然后在你的控制器里面
我最终制作了一个新的组件和服务 .
我简化了
index.html
(几乎没有变化):存储一个变量的服务:
带有 Headers 选择器的组件:
然后我将Global注入另一个组件,并在加载新页面时修改
global.pageTitle
.我很想听到对此的任何改进或使用根控制器或根范围的方法 .
我认为angular能够在body标签之外进行任何插值 . 最好的办法是使用Document.title()方法 .