1

私はBorisMooreのjsrender/jsviewsライブラリを試していて、現在現在のバージョンを使用しています(コミット26)。(APIは流動的であることに気づきましたが、それを使用して練習したいと思います)

ここでデモを見てきました:http: //borismoore.github.com/jsviews/demos/index.html

しかし、data-link構文を決定するのに問題があります。一部のデモでは、構文は次のとおりです。data-link="{:FirstName:}

なぜ2つのコロンがあるのか​​わかりません。最初のコロンはHTMLエンコードが行われないことを意味すると思いますが、2番目のコロンについてはわかりません。

他の場所では、Hereのような構文が表示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>

選択コントロールにバインドする方法がわかりません。

これがどのように行われるべきかについての説明をいただければ幸いです。

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を使用するかdata-link="{cvt:a.b.c:cvtBack}"、のように入力に対して一方向のバインディングを使用しdata-link="{:a.b.c}"ます。

したがって、コロンは両方ともバインディングの方向を指定し、そのバインディングのコンバーターを追加できるようにします。

一方向の「ソースへ」は現在直接サポートされていませんが、コンバーターを使用することで可能です。選択へのバインドは、これこれなどのいくつかの例で示されています。

現在、トリガーはonblur(またはonchange)ですが、宣言的に設定することも間もなく可能になります。今のところ、それを達成するためのコードが必要です-この例のように。

すべてのデモのコードはここにあります。

于 2013-02-17T22:20:22.727 に答える