【问题标题】:Correct syntax for binding to a form in jsviews (commit 26)在 jsviews 中绑定到表单的正确语法(提交 26)
【发布时间】:2013-02-17 06:52:31
【问题描述】:

我正在试验 Boris Moore 的 jsrender/jsviews 库,目前正在使用当前版本(提交 26)。 (我意识到 API 在不断变化,但想练习使用它)

我在这里查看了演示: http://borismoore.github.com/jsviews/demos/index.html

但我无法确定data-link 语法。在一些演示中,语法是data-link="{:FirstName:}

我不明白为什么要使用 2 个冒号。我假设第一个冒号意味着不会进行 HTML 编码,但不知道第二个冒号。

在其他地方,我看到像data-link="address.street" 这样的语法,这里根本没有花括号或冒号。我想知道你什么时候需要,什么时候不需要。另外,我不遵循您如何指定是要单向绑定还是双向绑定。或者,如果您希望绑定触发以响应按键而不是模糊。

这是一个我想正确设置的示例:

<div id="form">
    <p>
        <label>First Name</label>
        <input type="text" name="FirstName" data-link="FirstName"/>
    </p>
    <p>
        <label>Last Name</label>
        <input type="text" name="LastName" data-link="LastName"/>
    </p>
    <p>
        <label>Full Name</label>
        <input type="text" data-link="FirstName + ' ' + LastName"/>
    </p>
    <p>
        <label>Gender</label>
        <select name="Gender">
            <option value="U">Unknown</option>
            <option value="M">Male</option>
            <option value="F">Female</option>
        </select>
    </p>
</div>
<script>
   var data =
   {
      FirstName: "Bill",
      LastName: "Willis",
      Gender: "M"
   };

   $("#form").link(true, data);  //What is the 1st parameter (true) about?
</script>

我不知道如何绑定到选择控件。

我会很感激任何关于如何做到这一点的解释。

【问题讨论】:

    标签: javascript jsrender jsviews


    【解决方案1】:

    data-link="a.b.c" 是简写语法,相当于输入上的完整语法 data-link="{:a.b.c:}"(它为您提供双向绑定)和大多数其他元素的 data-link="{:a.b.c}"(即不是用户输入的表单元素,所以当然是单向绑定)。

    有关详细信息,请参阅https://github.com/BorisMoore/jsviews/issues/136

    如果您想进行非默认绑定,请使用完整的语法,例如使用 convert 或 convertBack,如 data-link="{cvt:a.b.c:cvtBack}",或单向绑定输入,如 data-link="{:a.b.c}"

    因此,冒号既指定了绑定的方向,又允许您为该绑定添加转换器。

    目前不直接支持单向“源”,但可以通过使用转换器来实现。绑定到选择显示在几个示例中,例如this onethis one

    目前触发器是 onblur(或 onchange) - 但很快也可以以声明方式设置它。现在它需要代码来实现它 - 如this example

    所有演示的代码是here

    【讨论】:

    • 非常感谢您的回答。
    猜你喜欢
    • 2014-10-21
    • 1970-01-01
    • 2011-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多