2013-02-17 77 views
1

我正在試驗Boris Moore的jsrender/jsviews庫,並使用當前版本(提交26)。 (我知道的API是在不斷變化,但想用它來練習)在jsviews中綁定到表單的正確語法(提交26)

我在這裏看到的演示: 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> 

我不知道如何綁定選擇控制。

我會很感激任何解釋應該如何做。

回答

2

data-link="a.b.c"是速記的語法,並且等同於輸入端上的完整的語法data-link="{:a.b.c:}"(它給你雙向綁定)和data-link="{:a.b.c}"對於大多數其它元件(即,不形成用於用戶輸入元件,所以當然它是一個綁定)。

有關詳細信息,請參見https://github.com/BorisMoore/jsviews/issues/136

如果您要執行非默認綁定,請使用完整語法(例如,如data-link="{cvt:a.b.c:cvtBack}"中的convert或convertBack,或輸入上的單向綁定,如data-link="{:a.b.c}"

所以冒號都指定了綁定的方向,並允許您爲該綁定添加轉換器。

單向'源'目前不直接支持,但可以通過使用轉換器。在幾個示例中顯示了選擇的綁定,例如this onethis one

目前觸發器是onblur(或onchange) - 但它很快就可以設置聲明。現在它需要代碼來實現它 - 如this example

所有演示的代碼是here

+0

非常感謝您的回答。 – CHS 2013-02-17 23:53:31