【问题标题】:Do any templates support 2-way binding using backbone.js?是否有任何模板支持使用backbone.js 进行2 向绑定?
【发布时间】:2013-06-07 01:29:28
【问题描述】:

此时我一直在使用 underscore.js 模板在获取它们时将我的主干.js 模型加载到 DOM 中。

当我需要保存用户所做的更改时,我一直在使用普通的 jQuery 调用获取表单的值。

是否有模板引擎可以将模板与backbone.js 模型进行双向绑定?

例如,如果我的模板具有以下内容:

<input id="name" type="text" val="<%= Name %>" />

当用户更改输入中的文本时,它会自动更改backbone.js模型中的文本,以便我可以跳过这一步吗?

Save: function() {
    var name = $('#name').val();
    this.model.set({ Name: name });
    this.model.save();
}

我遇到的问题是我的 Save 方法中有很多混乱,因为我必须遍历所有项目并获取它们的 ID,以便我可以设置它们。当我有相当复杂的 html 模板时,它会变得特别混乱。

【问题讨论】:

    标签: backbone.js underscore.js


    【解决方案1】:

    是的,有两个很棒的 Backbone 扩展用于双向绑定:

    Modelbinder 的最大优势在于,如果您想在绑定的同时进行自动验证,它可以很好地与 Backbone.Validations 集成。

    【讨论】:

      【解决方案2】:

      我不知道有什么模板引擎可以做到这一点,但KnockBack 项目结合了 Backbone 和 KnockOut,它确实有 2 路绑定。

      【讨论】:

      • 我会调查的。那么,如果您必须遍历 DOM 这么多,如何保持 Save 和 Update 方法的清洁呢?
      • 您不必在 Knockout 中遍历 DOM - 2 路绑定意味着您的模型会在事情发生变化时自动更新。这个问题的答案显示了一个例子 - stackoverflow.com/questions/12305655/…
      • 如果你只需要 2 路,淘汰赛就太重了。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-07
      • 2013-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-28
      • 1970-01-01
      相关资源
      最近更新 更多