用Ember.js进行手动表单数据保存的正确方法是什么?

JB

我正在尝试在Ember.js(不使用实时绑定)中创建具有中等数量字段(比如20)的手动保存表单,到目前为止,我对这样做的正确方法/最佳实践感到困惑。我发现以下方法:

http://www.solitr.com/blog/2012/06/ember-input-field-with-save-button/

如何在emberjs上使用单向绑定?

https://stackoverflow.com/a/16473186/1248965

以上所有方法在某种程度上看来都是很棘手的。他们要么扩展文本字段,要么使用每个字段的观察者,要求您列出每个观察者。还有其他方法吗?类似于“未绑定”助手,但允许自动模型通过某些动作(例如“未绑定-直到”或“条件绑定”或其他)来更新魔术/验证(通过ember-data)?我已经遍历了所有文档,SO,github问题,Ember论坛以及上面的链接,但仍然觉得我一定错过了一些东西。

基本上,这是一种表达方式:“使用通常绑定的表单/字段执行所有操作,但只能在特定操作上执行,而不是实时执行。”

斩波器

您想要的是“缓冲代理”,您可以在其中将对模型的所有更改临时存储setUnkownProperty在代理对象中(您可以使用捕获这些更改)。对更改感到满意之后,就可以将所有代理数据复制到实际对象中(“刷新数据”)。

App.Heisenberg = {
  firstName: 'Walter',
  lastName: 'White',  
};

App.IndexRoute = Ember.Route.extend({
  model: function() {
    return App.Heisenberg;
  },
  setupController: function(controller, model) {
    controller.set('content', model);
  }
});

App.IndexController = Ember.ObjectController.extend({
  proxy: {},
  setUnknownProperty: function(key, value) {
    console.log("Set the unknown property: " + key + " to: " + value); 
    this.proxy[key] = value;
    console.log(this.proxy);
  },
  flush: function() {
    for(var key in this.proxy) 
      this.set('model.'+key, this.proxy[key]);
  }
});

模板:

<script type="text/x-handlebars" data-template-name="index">
    Saved Name: {{firstName}} {{lastName}}<br />
    <br />

    <form {{ action "saveEdit" on="submit" }}>
        First Name: {{input type="text" valueBinding="firstName"}}<br />
        Last Name: {{input type="text" valueBinding="lastName"}}<br />
        <br />
        <button {{ action "flush" }}>Flush</button>
    </form>
</script>

这将成为一个不错的控制器Mixin。

有关实际示例,请参见此jsBin

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用ember-simple-auth进行的Ember CLI错误

来自分类Dev

用ember-cli阻止助手

来自分类Dev

在ember.js中手动触发属性更改

来自分类Dev

确定Ember.js上的弃用警告的位置

来自分类Dev

如何在Ember.js中禁用弃用警告?

来自分类Dev

用ember JS模板添加物化工具提示

来自分类Dev

Ember.js-保存记录后如何清除表单数据?

来自分类Dev

用组合框将数据加载到表单中的正确方法是什么?

来自分类Dev

如何在github页面上部署用ember-cli开发的Ember.js应用程序?

来自分类Dev

如何在github页面上部署用ember-cli开发的Ember.js应用程序?

来自分类Dev

用C#手动填充DataTable的最快方法

来自分类Dev

在不进行手动更新的情况下从多个HTML文件中删除字体的正确方法是什么?

来自分类Dev

Ember弃用jQuery Datatables在didInsertElement挂钩内进行了修改

来自分类Dev

Ember.js弃用registerImplementation,转而支持App.initializer

来自分类Dev

用HTML表单数据调用JS函数

来自分类Dev

Ember手动更改URL不会加载页面

来自分类Dev

手动将Cordova插件添加到Cordova项目的正确方法是什么

来自分类Dev

手动将Cordova插件添加到Cordova项目的正确方法是什么

来自分类Dev

有什么方法可以用Ember Data中的单个POST请求创建一批多个记录?

来自分类Dev

在Ember RESTAdapter中存储持久变量的正确方法是什么

来自分类Dev

用JSON数据填充成员后,将其手动添加到通用列表

来自分类Dev

用html表单中的输入值进行计算的最佳方法是什么?

来自分类Dev

锂已弃用的__init()方法,需要手动调用

来自分类Dev

用jQuery发布表单数据

来自分类Dev

“手动滚动” vtable方法的优势是什么?

来自分类常见问题

使用curl张贴多部分/表单数据的正确方法是什么?

来自分类Dev

使用Lenses用IO数据填充某些复杂结构的正确方法是什么?

来自分类Dev

在使用Ember和ember-data设置模型属性之前,如何编辑表单数据?

来自分类Dev

如何手动更新已弃用的打字包

Related 相关文章

  1. 1

    用ember-simple-auth进行的Ember CLI错误

  2. 2

    用ember-cli阻止助手

  3. 3

    在ember.js中手动触发属性更改

  4. 4

    确定Ember.js上的弃用警告的位置

  5. 5

    如何在Ember.js中禁用弃用警告?

  6. 6

    用ember JS模板添加物化工具提示

  7. 7

    Ember.js-保存记录后如何清除表单数据?

  8. 8

    用组合框将数据加载到表单中的正确方法是什么?

  9. 9

    如何在github页面上部署用ember-cli开发的Ember.js应用程序?

  10. 10

    如何在github页面上部署用ember-cli开发的Ember.js应用程序?

  11. 11

    用C#手动填充DataTable的最快方法

  12. 12

    在不进行手动更新的情况下从多个HTML文件中删除字体的正确方法是什么?

  13. 13

    Ember弃用jQuery Datatables在didInsertElement挂钩内进行了修改

  14. 14

    Ember.js弃用registerImplementation,转而支持App.initializer

  15. 15

    用HTML表单数据调用JS函数

  16. 16

    Ember手动更改URL不会加载页面

  17. 17

    手动将Cordova插件添加到Cordova项目的正确方法是什么

  18. 18

    手动将Cordova插件添加到Cordova项目的正确方法是什么

  19. 19

    有什么方法可以用Ember Data中的单个POST请求创建一批多个记录?

  20. 20

    在Ember RESTAdapter中存储持久变量的正确方法是什么

  21. 21

    用JSON数据填充成员后,将其手动添加到通用列表

  22. 22

    用html表单中的输入值进行计算的最佳方法是什么?

  23. 23

    锂已弃用的__init()方法,需要手动调用

  24. 24

    用jQuery发布表单数据

  25. 25

    “手动滚动” vtable方法的优势是什么?

  26. 26

    使用curl张贴多部分/表单数据的正确方法是什么?

  27. 27

    使用Lenses用IO数据填充某些复杂结构的正确方法是什么?

  28. 28

    在使用Ember和ember-data设置模型属性之前,如何编辑表单数据?

  29. 29

    如何手动更新已弃用的打字包

热门标签

归档