繁体   English   中英

Emberjs复选框保存到数据库

[英]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) ,那么它将告诉我truefalse的正确值。 我唯一的结论是,直到运行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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM