問題タブ [ko-custom-binding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
146 参照

javascript - metro.js datepicker を使用したノックアウト mvvm バインディング

私は、metro.js の日付ピッカーとノックアウトを使ってハッキングしようとしていました。これまでのところ、私の日付ピッカー バインディング コードは次のようになります。

問題は、dateプロパティでモデルの更新を発行すると、datepicker にバインドされたものが更新されないことです。つまり、それは初めてのことですが、それを投稿すると、テキストボックスの更新に失敗します。ただし、カレンダーは正常に表示されます。最終的には、関数のロジックを変更する必要がありapplyDateます...

JSBin: http://jsbin.com/rupaqolexa/1/edit?html,js,output

更新: 別の問題が発生しました... IE 10 以降では機能しません。日付NaNはUIのように表示されます...

更新: 再現手順

  1. 日付 2 番目のテキスト ボックス: 2013/05/13 を入力し、[変更] ボタンをクリックします。日付ピッカーのテキストボックスで観察日が更新されます。これは期待どおりに機能します。(IE を除く)。
  2. テキストボックスに別の日付を入力し、変更ボタンをクリックします。datepicker テキストボックスで日付が更新されていないことを確認します。ここで、datepicker テキストボックスが最新の値で更新されることが期待されます。
0 投票する
1 に答える
1223 参照

twitter-bootstrap - ノックアウト 3.4 セレクト ブートストラップ セレクトピッカー

Knockout バージョン 3.4 で初期値 selectPicker が機能しないのはなぜですか? ノックアウト 3.0 で動作します。

問題は行 this.teamID = ko.observable(3); にあります。

選択された値は、常に配列の最初の要素と等しくなります。

0 投票する
1 に答える
664 参照

knockout.js - Knockout カスタム バインディング "after" 変数とは何ですか?

一部のプロジェクトでASP.NET MVCでノックアウトを使用しています。 以下のノックアウトを使用しています
bindingHandler

この質問からこのコードを取得し、少し変更しました。
これは基本的にcustom binding handlerSelect2プラグイン用です。

質問 ここでの意味
を知りたいだけです。または関数after: ["options", "value", "selectedOptions"],のどこにも、この変数への参照はありません。 この変数は、このコンテキストで何らかの意味を持ちますか? それとも、[ 、、] バインディングの実行が終了した後に、このカスタム バインディングを実行するようにノックアウトする命令ですか?initupdate
optionsvalueselectedOptions

カスタム バインディング のドキュメントでは、この変数について何も言及されていないことに注意してください。

0 投票する
3 に答える
79 参照

javascript - カスタム選択リストのテキスト バインディングが Knockoutjs の最初の配列項目のエディターで機能しない

読み取り専用の電話番号のテーブルがあります。電話番号には、番号とタイプ (携帯電話や自宅など) があります。各電話番号には [編集] ボタンがあり、クリックすると、電話番号を編集してモーダル ダイアログに入力できます。読み取り専用テーブルとエディターに Knockoutjs を使用しています。テーブルは observableArray にバインドされPhoneVMs、エディターは単一の で動作しPhoneVMます。ユーザーが変更を適用する前にモーダルで [OK] をクリックする必要があるため、モーダルは選択したもののコピーで機能し、 [OK] をクリックすると、テーブルがバインドされている observableArray でPhoneVM最初にクリックされたものを置き換えますPhoneVM. それはすべてうまくいっています。

ここで、リストの最初の電話を読み取り専用テーブルと同じページで (モーダルなしで) 編集できるようにする必要があります。ワークフローの早い段階で最初の電話を入力しやすくするためのアイデアです。そのため、ページに電話を入力すると、下の読み取り専用リストに自動的に表示され、通常どおりモーダルで編集することもできます. Knockout なら簡単にできると思っていたのですが、思わぬ障害にぶつかりました。この時点から、何がうまくいかないかの例を示す方が簡単です。このフィドルで次の操作を行います: https://jsfiddle.net/ph4mhsof/

  1. 電話番号を編集し、テキスト ボックスからタブで移動します。[すべての電話] リストの最初の電話も更新されることに注意してください。
  2. ドロップダウンで電話の種類を変更します。[すべての電話] テーブルで、タイプ ID とタイプ名の両方が適切に変更されていることに注意してください。
  3. [最初の電話を削除] をクリックします。2 台目の電話機が新しい 1 台目の電話機になります。
  4. 電話番号を編集し、テキスト ボックスからタブで移動します。[すべての電話] リストの最初の電話が期待どおりに更新されることに注意してください。
  5. ドロップダウンで電話の種類を変更します。All Phones リストの Type ID だけが更新されていることに注意してください。タイプ名は更新されません。

カスタムバインディングを使用して、タイプ名を選択のテキストにバインドしています。そのバインディングの init 関数の valueAccessor は、元の最初の PhoneVM のPhoneTypeNameプロパティを特に指している必要があるようですが、私がそれを行う必要があるのは、firstPhone計算されたプロパティのPhoneTypeName. これを修正する方法はありますか?

元の jsfiddle のコピー: