1

我正在试验 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"Here 的语法根本没有大括号或冒号。我想知道你什么时候需要,什么时候不需要。另外,我不遵循您如何指定是要单向绑定还是双向绑定。或者,如果您希望绑定触发以响应按键而不是模糊。

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

<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>

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

我将不胜感激有关如何完成此操作的任何解释。

4

1 回答 1

2

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

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

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

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

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

目前触发器是 onblur(或 onchange)——但很快就可以以声明方式设置它。现在它需要代码来实现它 - 就像在这个例子中一样。

所有演示的代码都在这里

于 2013-02-17T22:20:22.727 回答