我的一个组件根据路由从 MongoDB 中提取页面标题(和内容),并将标题存储在该组件类的实例变量中。在 <title>
中留 mustache 的最佳方式是什么?标记要显示的变量,例如 <title>Site Title | {{pageName}}</title>
? <title>
标记超出了组件的范围。也许 Controller 适合这个用例,但我不太确定 Controller 指令或根对象的状态是什么。我考虑过提供服务并将其注入(inject)两者,但这似乎有点过分了。有一个更好的方法吗?谢谢!
最佳答案
我最终制作了一个新组件和一项服务。
我简化的index.html
(几乎没有变化):
<html ng-app>
<title>Site Title</title>
</head>
<body></body>
存储一个变量的服务:
import 'package:angular/angular.dart';
@Injectable()
class Global {
String pageTitle;
Global();
}
以及带有标题选择器的组件:
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 注入(inject)另一个组件并在每次加载新页面时修改 global.pageTitle
。
我很乐意听到对此的任何改进或使用根 Controller 或根范围的方法。
关于dart - AngularDart 动态改变页面标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25356958/