問題タブ [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.

0 投票する
2 に答える
4796 参照

jquery - KnockoutJSの依存する監視可能な配列

私はknockoutjsをいじり始め、いくつかの単純なバインディング/依存バインディングを行いました。私の目標は<select>、別のリストの値に基づいて1つのリストを作成すること<select>です。両方とも、私のasp.netWebサービスへのajax呼び出しからロードされています。

だから私は2つの<select>リストを持っています

次に、私のJavaScriptは次のようになります。

現在、これは期待どおりに機能しますが、コードがかなり長く見えるため、これは間違っていると思います。より少ないコードでknockoutjsを使用せずにこれを行うことができます。また、の値に基づいてロードするために追加しavailableModelsたdependentObsevableを使用しているため、ロードする方法は明らかに正しくありません。UpdateModelsavailableModelsselectedMake().text

これが理にかなっていて、これの改善されたバージョンを指摘できることを願っていますか?または、[作成]の選択に基づいてモデルをリロードするにはどうすればよいですか?

どうもありがとう、

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

javascript - ノックアウト可観測配列セットの選択値

値のリストにノックアウト データ バインド オプションを使用して「選択」を入力し、値の 1 つをデフォルトで「選択済み」に設定しようとしています。

2 つのサーバー要求があり、

  1. 値のリストを取得する (dataRepository.GetLifelines)
  2. リストからいずれかの値を [選択済み] に設定します。(dataRepository.GetMockSelectedLifeline)

最初の要件が解決されました。選択へのデータバインドは、「選択済み」値で正常に機能しています。

リストのデフォルトの「選択された値」の設定に問題があります。誰か助けてください。メソッドはthis.selectValueです。selectedLifeline を一致する「名前」に設定しようとしています。

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

javascript - ノックアウト: ネストされたdependentObservable - 機能していません

Knockout JS は初めてです。ネストされた配列を次のようにバインドする必要があります

名前:ドロップダウン

メール:選択したユーザーの名前

連絡方法の種類: ContactInfo からの連絡方法の種類が選択されたドロップダウン

連絡先の値: ContactInfo からの実際の値

名前、電子メール、連絡先の値が機能しています。連絡方法の種類の値をドロップダウンで選択する方法と、連絡先の値にバインドする必要があることを知る必要があります。

次のエラー エラーが表示されます: プロパティ 'ContactMethodType' の値を取得できません: オブジェクトが null または未定義です

}

HTMLコード

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

javascript - knockoutjs1.3-observableArrayがビューを更新しない

knockoutjsに問題があります。私はこれを完全に間違っているかもしれませんが、observableArrayがajaxデータで設定されており、正常に動作しています。ただし、ajaxを再度実行すると、正常に機能するすべてのアイテム(observableArray.removeAll)が削除されますが、ビューが2倍になります。以前のすべてのアイテムとすべての新しいアイテムがあります。

私のhtml/viewは次のようになります(1.3ベータ版でコンテナレス制御フローを使用しています)

子のforeachステートメントをすべて削除すると、正常に機能します。ネストの問題のようです。

何か案は?それともこれはバグですか?それに関連するものを見つけようとしていますが、まだ運がありません。

ありがとう
ダン

0 投票する
2 に答える
1562 参照

html - dojo / dijitツールキットをノックアウトオブザーバブルで動作させる簡単な方法はありますか?

宣言された選択がある場合

そして、ノックアウトデータバインディングを追加します

ノックアウト配列/バインドがdojo.readyの前に初期化されている場合、選択ボックスには正しい値が入力されますが、dojoがテンプレートを再書き込みするため、オブザーバブルが失われます。

dojo observablesに移行したくないのですが、この場合は移行する必要があるようです。

私は調査を続けていますが、この動きをする必要があるようです。

0 投票する
4 に答える
1375 参照

knockout.js - Knockout JSでobservableArrayに新しい配列を割り当てると、バインディングはobservableArrayの変更を検出できませんでした

observableArrayにバインドするテンプレートがあります

そして、リンクをクリックして毎回データを更新する必要があります

私のviewModelの最初のバージョン:

しかし、問題は、データがサーバーから非同期でロードされることです。そのため、短い時間間隔でリンクを高速でクリックすると、データが観察可能な配列で複数回複製される可能性があります。したがって、更新するたびに新しい配列にデータをロードする必要があると思います。

次に、viewModelの2番目のバージョン:

そして、新しい問題は、UIが配列の変更を感知できなかったことです。self.itmesArray(tempArray)は新しいobservableArrayオブジェクトを構築するようですが、テンプレートのバインドはまだ古いobservableArrayオブジェクトを追跡しています。これについてはよくわかりません。 。だから私は私の配列が変更されたことをテンプレート/UIバインディングに通知する方法を知りたいですか、または私の問題を修正するための他の回避策はありますか?

追加:jsFiddleのコード http://jsfiddle.net/zzcJC/10/

0 投票する
2 に答える
6918 参照

javascript - KO オブザーバブル配列をログに記録することは可能ですか?

私はノックアウトjsが初めてで、あなたに非常に基本的な質問があります:

画面上の twitter ハンドルを変更するユーザーを正常にサブスクライブし、ツイートを正常にフェッチして、ユーザーの最後の最近のツイートを表示することができましconsole.log(json.results[0].text);json.results:空の配列recent_tweets.push(json.results[0].text)が表示されます。[]

何が起こっている?ko.observable 配列のロギングは可能ですか?

0 投票する
2 に答える
14348 参照

javascript - Knockout.jsobservableArrayのすべての要素を置き換えます

observableArrayビューモデルがあります。vmを作成した後、データを完全に置き換えたいと思いますobservableArray。これが私がそれをしている方法です:

これは正常に機能しているようですが、これが正しくなく、メモリリークが発生する可能性があるのではないかと心配していました。observableArrayすべてのデータを置き換えたいと仮定して、これが既存のデータを更新するための好ましい方法である場合、誰でも準拠できますか?

observableArray私はメソッドを持っていることに気づきremoveAll()、これをきれいに行うためにそれを呼び出す必要があるのか​​、それとも私がやっていることで大丈夫なのか疑問に思いました。

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

javascript - KnockoutJS:あるobservableArrayを別のobservableArrayに追加するにはどうすればよいですか?

select要素からバインディングテーブルに選択したオプションを追加したい。ビューモデルには、ko.utils.arrayPushAll()を使用してselectedItems配列をaddedItems配列に追加するaddItem関数があります。しかし、[追加]ボタンをクリックしても何も起こりません(addItem関数を呼び出します)。ある監視可能な配列を別の配列に正しく追加するにはどうすればよいですか?

HTML

JavaScript

実例-http://jsfiddle.net/6H2PK/7/

更新:選択したアイテムを削除する作業例-http : //jsfiddle.net/ebash/xxNak/

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

knockout.js - KnockoutJS-ObservableオブジェクトのObservable配列

編集可能なアイテムのリストを表示したいと思います。各アイテムは編集可能です(ある意味、編集可能なグリッドのようなものです)。KnockoutJSを使用しています。ドキュメントに「observableArrayは、それらのオブジェクトの状態ではなく、配列内のオブジェクトを追跡する」と記載されているため、単純なObservableArrayだけを使用することはできません。

そこで、(utils.arrayMapを使用して)監視可能なオブジェクトのobservableArrayを作成し、それらをビューにバインドしました。ただし、問題は、画面上のデータを編集すると、ユーザーが画面上で行ったデータ入力の変更が有効に表示されないことです。http://jsfiddle.net/AndyThomas/E7xPM/を参照してください

私は何が間違っているのですか?

</ p>