[英]Emberjs Checkbox Save to Database
我有一个复选框,需要在值更改后立即保存到数据库。 它绑定到数据元素审核。 这是模板中的复选框:
{{view Site.ReleaseChecklistToggleView checkedBinding="audit" contentBinding="this" placeholder="#"}}
以下是Site.ReleaseChecklistToggleView
的定义:
Site.ReleaseChecklistToggleView = Em.Checkbox.extend(
change: (e)->
this.content.save()
)
似乎在调用更改之前未设置审核。 它将audit
变量作为null
传递给数据库,但是如果我在change
方法中执行console.log(this.content.audit)
,那么它将告诉我true
或false
的正确值。 我唯一的结论是,直到运行change方法之后,它才更新ember模型。
有什么建议吗? 我使用了错误的方法吗?
请尝试以下操作:
Site.ReleaseChecklistToggleView = Em.Checkbox.extend(
valueChanged: ->
@get("content").save()
.observes("checked"))
查阅Todo应用程序的Ember指南( http://emberjs.com/guides/getting-started/marking-a-model-as-complete-incomplete/ )。 通过执行此操作,我可以通过复选框自动保存特定属性。
万一该链接不再活动,这就是他们的操作方式...
把手
<!--- ... additional lines truncated for brevity ... -->
{{#each itemController="todo"}}
<li {{bind-attr class="isCompleted:completed"}}>
{{input type="checkbox" checked=isCompleted class="toggle"}}
<label>{{title}}</label><button class="destroy"></button>
</li>
{{/each}}
<!--- ... additional lines truncated for brevity ... -->
控制者
Todos.TodoController = Ember.ObjectController.extend({
isCompleted: function(key, value){
var model = this.get('model');
if (value === undefined) {
// property being used as a getter
return model.get('isCompleted');
} else {
// property being used as a setter
model.set('isCompleted', value);
model.save();
return value;
}
}.property('model.isCompleted')
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.