在Ember.js中,修改控制器屬性值的最佳做法是什麼?更改控制器屬性值
考慮下面的玩具應用程序:
JS:
window.App = Ember.Application.create();
App.ApplicationController = Ember.Controller.extend({
firstNameBinding: "App.myModel.name",
lastName: "Smith",
signedIn: true
});
App.myModel = Ember.Object.create({
name: 'John'
});
HB:
<script type="text/x-handlebars" data-template-name="application">
{{#if signedIn}}
Welcome back, <b>{{firstName}} {{lastName}}</b>!
{{else}}
Welcome, <b>Guest</b>!
{{/if}}
</script>
我能夠通過運行App.myModel.set('name', 'Jane')
改變firstName
價值。但我很難改變lastName
的價值。
如何實時修改lastName
?而且,App.ApplicationController
的實例在DOM中存儲在哪裏?
我沒有任何東西存儲在使用Ember時在DOM中。你應該閱讀[guides](http://emberjs.com/guides/),特別是關於Ember的約定。你以一種看起來有問題的方式混合東西:你的'lastName'是一個字符串,你的'firstName'是綁定另一個對象中另一個屬性的觀察方式(這種方式並不是真正推薦的)。您應該將模型的實例傳遞給其控制器的內容屬性(最好通過路由),而不是在模型中已經表示的控制器中創建屬性。 – MilkyWayJoe 2013-03-18 20:16:58