伙计们,我有一个关于更改父模板中的属性的简单问题。我写的代码如下:
App.Router.map(function () {
this.resource('parent' , { path: "/parent" }, function() {
this.route('child1');
this.route('child2');
this.route('child3');
});
该路由器创建以下路由:
- 父母
- 父索引
- 父子1
- 父子2
- 父子3
以下是我的模板(简化)
<script type="text/x-handlebars" data-template-name="application">
{{outlet}}
</script>
<script type="text/x-handlebars" data-template-name="parent">
<h1>{{title}}</h1>
Common html
{{outlet}}
</script>
<script type="text/x-handlebars" data-template-name="parent/index">
Parent specific content
</script>
<script type="text/x-handlebars" data-template-name="parent/child1">
Child 1 specific content
</script>
<script type="text/x-handlebars" data-template-name="parent/child2">
Child 2 specific content
</script>
<script type="text/x-handlebars" data-template-name="parent/child3">
Child 3 specific content
</script>
这是我的控制器
App.ParentController = Ember.Controller.extend({
title: 'Parent Title'
});
App.ParentIndexController = Ember.Controller.extend({
title: 'Parent Index Title'
});
App.Child1Controller = Ember.Controller.extend({
title: 'Child 1 Title'
});
App.Child2Controller = Ember.Controller.extend({
title: 'Child 2 Title'
});
App.Child3Controller = Ember.Controller.extend({
title: 'Child 3 Title'
});
当我在子控制器中时,如何更新 template="parent" 中的 {{title}} 属性?我试过这样的东西
App.Child3Controller = Ember.Controller.extend({
needs: ['parent'],
init: function() {
this.get('controllers.parent').set('title', 'Child 3 Title');
}
});
但我没有更新父模板。那么我该如何实现呢?