【问题标题】:Can I bind forms to a Dojo data store?我可以将表单绑定到 Dojo 数据存储吗?
【发布时间】:2011-08-23 19:36:09
【问题描述】:

Dojo 数据存储的所有文档似乎都指向将数据存储用于数组或数据表(例如,用于网格)。

Dojo 数据存储是否适合表单数据?您可以将表单或实际上是单个输入字段绑定到 Dojo 数据存储吗?有没有这方面的示例文档?

为了澄清我的问题:我希望从您可以使用 dojo 数据存储实现的双向更新和验证中受益,而不仅仅是从表单中收集所有值。

另外,也许我问错了问题。也许数据存储不是我想要的。 Dojo 是否为模型绑定提供任何其他概念?

【问题讨论】:

    标签: dojo


    【解决方案1】:

    看起来我正在寻找的内容在下面的链接中有所描述,但这尚不可用。 (根据这张 TRAC 票证:http://bugs.dojotoolkit.org/ticket/12314,仅在 1.7 版本中)。

    这将构成 Dojo 的 dojox.mvc 包的一部分(请参阅 http://svn.dojotoolkit.org/src/dojox/trunk/mvc/README),因此虽然它可能可以使用,但它仍处于开发阶段,因此处于试验阶段。

    http://doughays.dojotoolkit.org/patterns/data_bound_widgets.html

    http://chrism.dojotoolkit.org/dojomvc/

    【讨论】:

      【解决方案2】:

      不,因为存储这种信息没有意义。

      您要做的是在数据存储中存储 数百 个表单。但你不会存储一个。

      如果您需要获取 dojo.form.Form 的值,您可以在表单上调用 getValues(),然后将其发送到服务器进行持久化。

      dijit.byId("form").getValues();

      【讨论】:

      • 但这并没有解决双向更新和验证的需求,您通常会将其与模型绑定相关联。
      • 另外,也许我问错了问题。也许数据存储不是我想要的。 Dojo 是否为模型绑定提供任何其他概念?
      • 嗨 Laykes,在四处搜寻并在正在开发的 dojox.mvc 上找到了一些材料之后,我添加了一个答案(以及几个更新!)。谢谢。
      • 您希望 Dojo 在其小部件上提供 Backbone.js 绑定(就像我一样)
      【解决方案3】:

      好问题,如果像 KnockoutJS 这样的双向模型绑定在具有国际化功能和验证功能的 dojo 框架中工作,它会很好。

      在 KnockoutJS 中,两种方式的绑定以这种方式工作:

      Javascript:

      function AppViewModel() {
          this.firstName = ko.observable("Bert");
          this.lastName = ko.observable("Bertington");
      }
      

      // 激活 knockout.js ko.applyBindings(new AppViewModel());

      HTML:

      <p>First name: <input data-bind="value: firstName" /></p>
      <p>Last name: <input data-bind="value: lastName" /></p>
      

      似乎 Knockout 使用观察者模式进行双向模型绑定。它很好,但对于实际使用它不起作用。正如我所说,国际化功能是必需的。用户喜欢以自己的文化输入数据。 我不使用 KnockoutJS。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-22
        • 2012-03-09
        • 1970-01-01
        • 1970-01-01
        • 2016-09-05
        • 2010-10-29
        相关资源
        最近更新 更多