問題タブ [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.
javascript - metro.js datepicker を使用したノックアウト mvvm バインディング
私は、metro.js の日付ピッカーとノックアウトを使ってハッキングしようとしていました。これまでのところ、私の日付ピッカー バインディング コードは次のようになります。
問題は、date
プロパティでモデルの更新を発行すると、datepicker にバインドされたものが更新されないことです。つまり、それは初めてのことですが、それを投稿すると、テキストボックスの更新に失敗します。ただし、カレンダーは正常に表示されます。最終的には、関数のロジックを変更する必要がありapplyDate
ます...
JSBin: http://jsbin.com/rupaqolexa/1/edit?html,js,output
更新: 別の問題が発生しました... IE 10 以降では機能しません。日付NaN
はUIのように表示されます...
更新: 再現手順
- 日付 2 番目のテキスト ボックス: 2013/05/13 を入力し、[変更] ボタンをクリックします。日付ピッカーのテキストボックスで観察日が更新されます。これは期待どおりに機能します。(IE を除く)。
- テキストボックスに別の日付を入力し、変更ボタンをクリックします。datepicker テキストボックスで日付が更新されていないことを確認します。ここで、datepicker テキストボックスが最新の値で更新されることが期待されます。
twitter-bootstrap - ノックアウト 3.4 セレクト ブートストラップ セレクトピッカー
Knockout バージョン 3.4 で初期値 selectPicker が機能しないのはなぜですか? ノックアウト 3.0 で動作します。
問題は行 this.teamID = ko.observable(3); にあります。
選択された値は、常に配列の最初の要素と等しくなります。
knockout.js - Knockout カスタム バインディング "after" 変数とは何ですか?
一部のプロジェクトでASP.NET MVCでノックアウトを使用しています。
以下のノックアウトを使用していますbindingHandler
この質問からこのコードを取得し、少し変更しました。
これは基本的にcustom binding handler
Select2プラグイン用です。
質問 ここでの意味
を知りたいだけです。または関数after: ["options", "value", "selectedOptions"],
のどこにも、この変数への参照はありません。
この変数は、このコンテキストで何らかの意味を持ちますか? それとも、[ 、、] バインディングの実行が終了した後に、このカスタム バインディングを実行するようにノックアウトする命令ですか?init
update
options
value
selectedOptions
カスタム バインディング のドキュメントでは、この変数について何も言及されていないことに注意してください。
javascript - カスタム選択リストのテキスト バインディングが Knockoutjs の最初の配列項目のエディターで機能しない
読み取り専用の電話番号のテーブルがあります。電話番号には、番号とタイプ (携帯電話や自宅など) があります。各電話番号には [編集] ボタンがあり、クリックすると、電話番号を編集してモーダル ダイアログに入力できます。読み取り専用テーブルとエディターに Knockoutjs を使用しています。テーブルは observableArray にバインドされPhoneVMs
、エディターは単一の で動作しPhoneVM
ます。ユーザーが変更を適用する前にモーダルで [OK] をクリックする必要があるため、モーダルは選択したもののコピーで機能し、 [OK] をクリックすると、テーブルがバインドされている observableArray でPhoneVM
最初にクリックされたものを置き換えますPhoneVM
. それはすべてうまくいっています。
ここで、リストの最初の電話を読み取り専用テーブルと同じページで (モーダルなしで) 編集できるようにする必要があります。ワークフローの早い段階で最初の電話を入力しやすくするためのアイデアです。そのため、ページに電話を入力すると、下の読み取り専用リストに自動的に表示され、通常どおりモーダルで編集することもできます. Knockout なら簡単にできると思っていたのですが、思わぬ障害にぶつかりました。この時点から、何がうまくいかないかの例を示す方が簡単です。このフィドルで次の操作を行います: https://jsfiddle.net/ph4mhsof/
- 電話番号を編集し、テキスト ボックスからタブで移動します。[すべての電話] リストの最初の電話も更新されることに注意してください。
- ドロップダウンで電話の種類を変更します。[すべての電話] テーブルで、タイプ ID とタイプ名の両方が適切に変更されていることに注意してください。
- [最初の電話を削除] をクリックします。2 台目の電話機が新しい 1 台目の電話機になります。
- 電話番号を編集し、テキスト ボックスからタブで移動します。[すべての電話] リストの最初の電話が期待どおりに更新されることに注意してください。
- ドロップダウンで電話の種類を変更します。All Phones リストの Type ID だけが更新されていることに注意してください。タイプ名は更新されません。
カスタムバインディングを使用して、タイプ名を選択のテキストにバインドしています。そのバインディングの init 関数の valueAccessor は、元の最初の PhoneVM のPhoneTypeName
プロパティを特に指している必要があるようですが、私がそれを行う必要があるのは、firstPhone
計算されたプロパティのPhoneTypeName
. これを修正する方法はありますか?
元の jsfiddle のコピー: