0
我有以下看法:從一個不相關的控制器更改視圖屬性
App.MessageTrayView = Bootstrap.AlertMessage.extend({
message: 'This is a message.',
});
在此模板顯示:
<script type="text/x-handlebars" data-template-name="nodes">
<article>
<form class="form-horizontal">
<fieldset>
{{view App.MessageTrayView id="message-tray-view"}}
<div id="legend" class="">
<legend class="">Nodes <span class="badge">{{controllers.nodesIndex.length}} records</span>
<div class="pull-right">
<a {{action destroyAllRecords}}><i class="icon-remove-circle"></i><a/>
{{#linkTo "nodes.new" class="btn btn-primary"}}Add Node{{/linkTo}}
</div>
</legend>
</div>
{{outlet}}
</fieldset>
</form>
</article>
</script>
這無關控制器:
App.NodesIndexController = Ember.ArrayController.extend({
destroyAllRecords: function() {
console.log('destroyAllRecords called');
App.MessageTrayView.set('message', 'All nodes have been deleted');
},
});
我想在destroyAllRecords
被觸發後立即更改顯示的消息。這不起作用(控制檯中的錯誤消息告訴我,我正在做一些*非常*錯誤的事情)。如何更改message
屬性,以便更改在頁面上直接顯示?
你可以看到代碼直播here
謝謝,這是有效的。我曾經看過在視圖中定義綁定到應用程序屬性的示例,但我希望有一種直接的編程方法來修改視圖屬性。 – dangonfast
@gonvaled,是的,我瞭解你,事情是,因爲視圖的意圖是鬆散耦合的綁定機制是首選的方式 – intuitivepixel