(編輯:簡化的東西低於位)車把查看不刷新時{{的#if}} {{別的}}條件改變
我有一個車把模板與{{的#if等}}有條件的,當我更改相關數據時,視圖會首次更新,但隨後不會繼續更新後續更改。我正在切換條件中的布爾值,並且我知道切換正在運行並切換屬性,因爲我可以在控制檯上觀察切換屬性,但是我說實際視圖只刷新一次。在我的html文件,這看起來是這樣的:
<script type="text/x-handlebars" data-template-name="application">
<body>
<div class="row">
{{#if App.Nav.show}}
{{outlet nav}}
{{/if}}
<div class="span10">
<h1>Hello</h1>
{{outlet}}
</div>
</div>
</body>
</script>
和遠一點上,切換:
<script type="text/x-handlebars" data-template-name="people">
<a {{action toggleMenu}}> toggle </a>
</script>
,並在JavaScript:
App.NavController = Ember.Controller.extend();
App.NavView = Ember.View.extend({
templateName: 'nav'
});
App.Nav = Ember.Object.create({
show: true
});
最後的相關位路由器:
App.Router = Ember.Router.extend({
enableLogging: true,
root: Ember.Route.extend({
index: Ember.Route.extend({
route: '/',
showPerson: Ember.Route.transitionTo('aName'),
toggleMenu: function(){
console.log('Changing the toggle!');
App.Nav.toggleShow();
},
connectOutlets: function(router){
router.get('applicationController').connectOutlet('nav', 'nav');
router.get('applicationController').connectOutlet('allPeople', unrelated_function())
}
})
})
});
很顯然,現在回想起來,該視圖實際上不更新而且我的問題是插座斷開連接,並且不會自動重新連接......如果我將該功能以路由器作爲參數並在需要時連接它,它就可以工作。這是最佳做法嗎? – mg2
你想要做什麼?你只想隱藏/顯示一個視圖或其他任何東西? –
在這種情況下,是的 - 是否有一個更規範的方式來做到這一點? – mg2