問題タブ [observable]
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.
knockout.js - ノックアウト observableArray プッシュ - 配列にプッシュしない
Knockout で遊んでみましたが、監視可能な配列へのプッシュに問題があります。以下の私のコードは、ボタンのクリックでサーバーからいくつかの json データをフェッチし、オブジェクトの配列を返します。最初の console.log コンソールは問題なく出力されます。オブジェクトの配列は問題なくダンディです。
ただし、各オブジェクトを監視可能な配列にプッシュすることはできないようです。コンソールに空の配列が表示されます。いくつかのバリエーションを試してみましたが、単純なものが欠けているように感じますが、追跡するのに苦労しています.
私がやろうとしているのは、サーバーからいくつかのデータをロードし、それをテンプレートにバインドできる監視可能な配列に入れ、配列の内容を出力するために foreach のようなことを行うことです。
data-binding - 更新のために observableArray でデータを管理する方法がわからない
今後のプロジェクトに取り入れたいので、KO をいじり始めたところです。余暇に仕事で Web サービスをいじっていましたが、これは基本的に、データを使って何かをすることから始めて、それから別のことをするというものでした。最初に、薬物名のリストを返しました。では、返された結果の数を追加しましょう。では、個々の薬の詳細をモーダルに入力しましょう。では、薬品名を編集しましょう。本当の韻や理由はありません。ただ何かを考え出し、KO で遊んでいます。
どこでも更新されるように、データを実際に管理する方法がわからないところまで来ています。私が持っているものを説明し、問題を説明するスクリーンショットを作成しました。
- 「y」ボタンをクリックして検索結果を取得します。次に、「Yasmin 28」ドラッグを選択します
- モーダルウィンドウでその薬の詳細ビューを取得します
- 薬品名を編集して「保存」ボタンをクリック
- モーダルウィンドウで薬剤名が更新されます
- DOM のその部分をクロールし、古い薬の名前を新しい薬の名前に置き換えるだけで、検索結果の薬の名前を「チート」して更新します。
これの問題は、KO の観察可能な性質を利用していないことです...モーダルを閉じて "Yasmin 28" ドラッグ リンクをもう一度クリックすると、モーダルには "Yasmin 28" が表示されますが、 (「素晴らしいもの」)に変更しただけです。
observableArray でプロパティが変更されたかどうかを追跡する方法がよくわかりません。2 つの observableArray を作成しました。1 つは検索結果の薬物名のリストを保持し、もう 1 つは薬物の詳細を保持します。また、現在の薬名のオブザーバブルも作成しました。
どこでも私の薬の名前を追跡するために何をする必要があるか誰か説明できますか? 以下のコードと、作業中の JSON を一番下に含めました。
knockout.js - 誰かがこれを2つのobservableArrayから1つに作り直す方法を説明できますか?
使用されるデータは、javascriptパネルの上部にインラインで表示されます。
結果パネルの[詳細を表示]リンクをクリックすると、表のリストの下に入力されたその薬に関連するデータがさらに表示されます。DrugName行の「編集」をクリックすると、その薬剤名を変更できます。名前を変更すると、データテーブルとデータテーブルの上のヘッダーに反映されます。結果パネルの上部にあるリスト(つまり、別のobservableArray)では更新されません。
これをすべて1つのobservableArrayで機能させる方法がわかりません。私はdrugListoservableArrayにdata.preferredDrugsを入力しています(これは、foreach:drugListを使用して繰り返すオブジェクトの配列です)。これにデータだけを入力すると、オブジェクトのpreferredDrugs配列だけを反復処理する方法がわかりません。これが、2つのobservableArraysになってしまった理由です。1つは薬剤名用、もう1つは薬剤詳細用です。
1つのobservableArrayを使用してこれを機能させるにはどうすればよいですか。テーブル内の薬剤名を編集すると、どこにでも反映されます。
triggers - Knockout.JS:オブザーバブルの変更に基づいてトリガーします
オブザーバブルのノックアウトにバインドされている入力要素があります。
これにより、各キーアップでオブザーバブルが更新されます。値が変更されたときに追加のイベントをトリガーしたいと思います。
以下は、原則としてこれを行います。
しかし、それはやや不格好なようです。また、テンプレートの最初のインスタンス化でトリガーされ、その後の変更のみを処理します。オブザーバブルの変更に基づいてイベントをトリガーする公式/簡単な方法はありますか?
java - java.util.vectorをjavax.collections.observablelistにキャストすることはできません
このエラーが発生します:
java.util.vectorをjavax.collections.observablelistにキャストすることはできません
TableViewにリストを入力しようとしたとき
これは私のコードエラーが最後の行で発生します
Listをテーブルにバインドするにはどうすればよいですか、またはListをObservableListに変換する正しい方法は何ですか?
knockout.js - ノックアウトは常に更新されるとは限りません(ビデオリンク内)
問題のビデオデモ:http ://www.screenr.com/k168
- 「y」ボタンをクリックして、サーバーからデータを取得します。
- 最初の結果の「詳細を表示」リンク(y-cof-dmx)をクリックして、レコードの詳細ビューを表示します。薬剤名をメモします(モーダルタイトルバー/データテーブルとコンソールの両方にあります)。それらはすべて一致します。ここまでは順調ですね。
- 次の結果の「詳細を表示」リンク(Yasmin 28)をクリックします。モーダルとコンソールの薬剤名に注意してください。コンソールは現在のモデルオブジェクトを認識していますが、モーダルは更新されません。それでも「古い」結果、y-cof-dmxです。
- 次の結果( Yaz )についても同じことが言えますが、モーダルでは「古い」結果が表示されます。
- モーダルで薬剤名を編集します。UI全体で更新され、モーダルを再度開いたときに反映されます。
私のオブザーバブルは常に更新されていますが、常に更新されているわけではありません。なぜなのかわかりません。
私のコードはすべてhttp://jsfiddle.net/6fm5T/にありますが、フィドルでは実行されません。
コードの興味深い部分であるモーダルは、次のものを探して見つけることができます。
そしてJSには、次のものがあります。
showDetailsの上のほんの一握りの行で宣言されているobservableを更新しようとしているところ:
私が扱っているデータは単純なオブジェクトです。構造はJavaScriptペインの上部( http://jsfiddle.net/Gm64C/2/ )に表示されます(他のすべては無視してください)。
どんな洞察も大歓迎です!
以下の私の最初のコメントからの更新
これが私の改訂の適切な部分です。HTMLでは、drugNameを関数として呼び出す必要がありました。
これから:
これに:
jqueryUIダイアログの新しいカスタムKOバインディングは次のとおりです。
これから:
これに:
java - 共有リソースへの同時更新の防止
クラス P、クラス Q、およびクラス R があり、それに応じてテーブル Pt、テーブル Qt、およびテーブル Rt を更新しています。クラス P は、グラフィカル インターフェイス Pi から変更可能であり、Qi および Ri についても同様です。
ここで、クラス P、Q、および R の間で共有される特定のデータがあります。
このため、Pi、Qi、Ri が同時にデータを更新するたびに、(すべてのインターフェイスで) メッセージが表示され、画面がフリーズすることをユーザーに伝えたいと考えています。「このデータは他の場所から変更されています。しばらくお待ちください。しばらくの間。」
ここで Observable パターンを使用することを考えました。これらのクラス P、Q、R は Observable に登録され、observable が同時アクセスを処理します。それは正しい方法ですか?
java - MVC - ビューはオブジェクトを観察できますか?
Observable と Observer を使用しながら MVC 構造をよりよく理解しようとしています。ファイルを比較するプログラムを実装することでそうしようとしています。ビューにファイルのリストといくつかの統計データを表示したいと考えています。ビューを別のデータで更新するにはどうすればよいですか?
たとえば、統計が変更された場合、統計オブジェクトをビューに送信して、表示を更新できるようにします。しかし同時に、ファイルのリストが変更された場合は、ArrayList をビューに送信して、表示を更新できるようにします。両方に同じ更新方法を使用しますか? もしそうなら、instanceofが何であるかを確認し、それに応じて表示するようにビューを見てもらいますか?
c# - RX、再試行して例外の処理を許可する
RXに頭を包み込もうとしていますが、どこかで脳が爆発します:)
私がやろうとしているのは、RXを介して非同期でWCFメソッドを呼び出すことです。ここでは特別なことは何もありませんが、WCFメソッドがエラーをスローしたときに、チャネルを再作成してもう一度実行します(最大3回)。
私がこれまでに持っているのは:
をCatch<TSource, TException>
いじってみたところ、例外をトラップして同じオブザーバブルを続行できるため、必要なものが得られました。唯一の問題は、それが永久に実行されることです。つまり、例外をスローし続けると、物事が止まることはありません。
ruby-on-rails - Ruby on Rails: コントローラーのアクションからモデルの変更を観察する
update
コントローラーのアクションが呼び出されるたびに (またはモデルが更新されるたびに)、サーバー送信イベントを発行したいと考えています。私は現在watch
、ダミーエミッターを使用して同じコントローラーで動作するアクションを持っています:
update
が呼び出されたときに値を生成/返す列挙可能なオブジェクトを取得するにはどうすればよいですか? (注: 本当に Enumerable である必要はありませんが#each
、このストリーミング手法が機能するには応答する必要があります。) ある意味では、Rails でイベント駆動型アーキテクチャを実装しようとしていると思います。
Observableは知っていますが、必要に応じてオブザーバーを列挙可能にする方法、またはループとスリープ タイマーを使用せずに (上記のように) オブザーバーを Enumerator に配置する方法がわかりません。
これの目的は、データベースに加えられた変更を、現在ログインしている他のすべてのユーザーに送信して、各ユーザーが常にデータベースの現在の反映を持つようにすることです。
ありがとう-