ノックアウトを発見するだけで、ここで何かを逃したら愚かさを指摘してください。私は現在、ノックアウトで観測可能なものに複数選択されています。Knockout.js複数選択と区切り文字列の間の双方向バインディング
<select class="form-control" id="SithSelect" data-bind="attr: { 'data-has-value': (Sith() ? true : false) }, selectedOptions: Sith() ? Sith().split('|') : '' " placeholder="The dark side" multiple>
<option disabled></option>
<option value="Darth Vader">Darth Vader</option>
<option value="Darth Maul">Darth Maul</option>
<option value="Darth Bane">Darth Bane</option>
</select>
ここで、 "Sith"は観測可能な文字列値です。
データベースに「Darth Vader | Darth Maul」という文字列値を手動で追加すると、最終的に値がクライアント側に下がり、複数選択で正しく選択された2つの値が表示されます。
ただし、値を変更すると、選択した値をオブザーバブルに保存されたパイプ区切り文字列に戻す方法はありますか。
私が試したことから、selectにバインドされた観測可能な配列を持つことでこれをソートし、データベースに保存する際にパイプで区切られた文字列を再構成することができます。このソリューションでは、個々のselect要素(これはDBのパイプ区切り文字列を使用するページ上の唯一の要素)と密接に関連しているため、コードを見て少し面白いです。
複数の選択文字列と区切られた文字列の間で双方向バインドを行うことに何か不足していますか?代わりに、複数の選択されたオプションをバインディングの観測可能な値に戻して割り当てるときに、逆の処理をする方法がありますか?
UPDATE:質問がに絞られました:
私は書くことができるように、計算値の読み取り/書き込み機能を処理することができ、私はバインディングの中に置くことができることをノックアウトする作り付けの何かが、あります独立して計算された観測可能な値を作成する必要はなく、インライン化されていますか?
あなたはこれが間違った方法に近づいていると思います。選択されたオプションは、viewModleに設定された観測可能な配列でなければなりません – brianlmerritt
はい、上記のように、観測可能な配列にバインドしてパイプの区切り文字列を再構築することはできましたが、残りのバインディングがどのように一般的であるかと比べて – DarthJam