問題タブ [ko.observablearray]
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 - 観察可能な配列の問題をコピーするノックアウト
ある監視可能な配列を別の監視可能な配列にコピーしようとしています。請求先住所、配送先住所、チェックボックスが記載されたフォームがあります。クリックすると、ユーザーはすべての配送情報を請求先住所にコピーできます。私が抱えている問題は、ある監視可能な配列を別の監視可能な配列にコピーするときに、どちらかの監視可能な配列に変更を加えるたびに、両方の監視可能な配列が更新されることです。両方の観測可能な配列値を別々に保ちたいのですが、値を一方から他方にコピーするだけです。
私の観察可能な配列は、マッピングプラグインを使用して設定されています:
次に、配送情報を入力して[配送先住所を使用]をクリックした後、配送情報を請求にコピーします。
また、次のことも試しまし た。knockoutJSでobservablearrayを複製/コピーする最良の方法は何ですか?
助けていただければ幸いです。
knockout.js - ko.observableArrayを{value、text}オプションのリストにバインドする
このjsFiddleは、私の目的に対して誤ったコードを表示します。ユーザーがその日の曜日を選択するたびに、その日のリストに追加/削除してほしいのですが。Knockout2.1.0の使用。
HTML:
JavaScript:
</ p>
javascript - 観察可能な配列を操作するためにノックアウトバインディングが期待どおりに機能しない
フォームを表示するRazorとKnockout.jsを使用したビューがあります。フォームの一部はユーザーに値のリストを入力するように要求し、私たちはko.observablearray
それらを追跡するためにを使用しています。このリストは、値ごとに1つずつ、一連のテキストボックスとして表され、各ボックスの横に[削除]ボタンがあり、すべての下に1つの[追加]ボタンがあります。これは、 http://learn.knockoutjs.com/#/?tutorial=collectionsのデモプロジェクトと同様に機能します。
私たちのフォームは、2つの方法で予期せず動作しています。
- 削除ボタンがクリックされると、
ko.observablearray
クリックされたものに対応する値だけでなく、からすべての値が削除されます。 - フォーム全体の[送信]ボタンをクリックする
ko.observablearray
と、サーバーにフォームを送信する代わりに、新しい要素が追加されます。
なぜこの動作が見られるのですか?(これらが2つの別個の問題であることは知っていますが、根本的な問題が同じであるかどうかはわかりません。そのため、1つの質問に投稿します。)
これが私たちのRazorビューです:
ノックアウトコードの主要部分であるOP.Input.Input.Form.jsは次のとおりです。
OP.Input.Input.Data.jsは次のとおりです。
javascript - ajaxの追加後にノックアウトオブザーバブル配列が更新されない
複雑なオブジェクトの監視可能な配列があります。初期ロードは問題なく、期待されるすべてのデータは問題ないように見えます。現在、その配列に新しいアイテムを POST する作業を行っています。注: 監視可能な配列は、ASP.NET ajax Web API 呼び出しを介して読み込まれています。
新しいアイテムの投稿は、データベースに保存する限りは正常に機能しますが、DOM が新しいアイテムで更新されず、何が欠けているのかわかりません。
これがViewModel全体です
これは、POST を実行している特定のスニペットです (ClientList() 関数内)。
クライアント変数内にあるのは JSON であることを確認しましたが、エラー メッセージがスローされていないため、混乱しています。アイテムを追加してページ全体を更新すると、リストに表示されます。
編集:関連するhtmlは次のとおりです。
外部テンプレートは次のようになります。
knockout.js - TypeScriptでobservableArrayをノックアウトする
TypeScriptクラスでKnockoutobservableArrayを初期化する適切な方法は何ですか?
私はこのようなことをしています:
簡単そうに見えますが、示されているように代理店のプロパティにアクセスしようとすると、実行がハングします。私は何か見落としてますか?
knockout.js - ko.observableArray の ko.DirtyFlag は常にダーティです
ビューモデル内には、次のコードがあります。
のために、私は常にダーティフラグをtrueにしAddressList
ます。
どの値がダーティでないか、またはいつ変更の監視を開始するかを指定する方法はありますか?
knockout.js - オブジェクトプロパティのobservableArrayからの一意のアイテム
ドロップメニューにデータを入力するために、オブジェクトのknockout.jsobservableArrayから一意のプロパティを抽出しようとしています。ノックアウトに慣れていないので、私はこれに本当に苦労しています!
連絡先リストを繰り返し処理し、observableArray内の各personオブジェクトからの一意の値をドロップメニューに入力します。したがって、以下のコード例では、ドロップメニューに「タイプ」(家族、友人など)のリストを入力したいと思います。
Googleを見ると、同様の関数が見つかりましたが、結果をconsole.logに記録しても、値が返されません。
そしてHTMLテンプレート
どんな助けでもありがたいです、初心者として私は迷子になっています!ありがとう
knockout.js - ノックアウトマッピング+監視可能な配列に追加
フィドルはここにあります。
によってマップされる監視可能な配列に追加していko.mapping.fromJS()
ます。
私の見解では、配列のプロパティを使用してURLを作成していますattr: { href: '/Users/Summary?userId=' + ID() }
。
使用している配列にアイテムを追加したい場合self.Users.push()
。
これを行うと、のエラーが発生しますID is not a function
。
だから私の質問は、配列にアイテムを追加する正しい方法は何ですか、それとも属性をhref
適切に構築していませんか?
jquery - 計算されたKnockoutjsは、更新後に再計算されません
「Vol」のオブザーバブルを含む「Parts」のオブザーバブル配列を使用しています。現在、各パーツのボリュームと合計量が表示されています。アプリケーションが起動すると、合計金額が正しく追加されます。ただし、パーツのボリュームを変更しても、合計量は再計算されません。
HTML:
Javascript:
これが私のJsFiddleです:http://jsfiddle.net/jwinstonaspen/Zmkew/6/
knockout.js - 奇妙な動作を伴うノックアウトjsでの手動サブスクライブのbeforeChange
私のビューモデルには、ファイル、ファイルの種類、および未使用のファイルの種類のリストがあります。
File
クラスを作成し、その中にtype
プロパティを作成しました。type
使用されていないファイル タイプのリストを埋めるには、プロパティの beforeChange およびその他の afterChange をサブスクライブします。
アイデア
アイデアは、ファイルの種類を変更するたびに、変更が発生する前にイベントが発生し、使用されていないファイルの種類のリストに古い種類を追加することです。また、変更後に別のイベントが発生し、使用されていない型のリストから新しい型が削除されます。
問題
- すべてのファイルには、定義されたファイル タイプの配列の最初のタイプが付属しています。この場合「jpeg」
- ファイルの種類を変更すると、他のすべてのファイルの種類が変更されます。
- リストからファイル タイプを削除する
typesUnused
と、types
リストも変更される場合があります。