如果我正确理解了ember.js文档,那么我应该看到模型systemStatus值被填充,但我不是:
<div class="form-group">
<label class="col-sm-2 control-label" for="name">Description</label>
<div class="col-sm-10">
{{view "select" content=statuses value=model.systemStatus }}
</div>
</div>
这是控制器:
import Ember from "ember";
export default Ember.Controller.extend({
statuses: ["Being Built", "Active","Inactive"],
selectedSystemStatus: 'Active',
actions: {
save: function() {
// this.model.set('systemStatus', this.selectedStatus);
var s = this.get('selectedSystemStatus');
this.model.save();
},
cancel: function() {
}
}
});
模特:
import DS from "ember-data";
export default DS.Model.extend({
name: DS.attr('string', {defaultValue: 'Hello'}),
systemStatus: DS.attr('string', {defaultValue: 'Active'}),
description: DS.attr('string', {defaultValue: 'Describe me'})
});
路由器: 从“余烬”中导入Ember;
export default Ember.Route.extend({
model: function() {
return this.store.createRecord('software-system');
}
});
在您尝试从UI中选择一个选项之前,一切正常。我不确定我在这里做错了什么,并希望得到一些帮助。
答案 0 :(得分:0)
你有任何地方可以致电this.store.find('my-model')
吗?这是模型填充的地方。
默认方式是将其放入route
挂钩中的相应model
:
// routes/my-model.js
export default Ember.Route.extend({
model: function() {
return this.store.find('my-model');
}
});
使用这种方法,您的控制器将一直等到模型加载。