問題タブ [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 - ノックアウト - データのフィルタリングにわずかな問題がある
編集:問題は自分の self.providers = ko.computed() にあると思います。フィルター ボタンのクリックでプロバイダー配列を上書きしています。
すべてをローカルで開発しているため、両方ともHTMLペインにすべてがあり、ファイル全体を分割するのではなく、jsfiddleにコピー/貼り付けする方が簡単です。
また、かなり大きなダミー データ オブジェクトをスタブ化しました。 これは 110 行目から始まるため、ローカルでコピー/貼り付け/実行する場合、そのデータ オブジェクトを最小化できるエディターが必要になることは間違いありません。
最初のフィドルはhttp://jsfiddle.net/82cK7/にあり、正常に動作しているように見えますが、「ライブ」フィルタリングです。プロバイダー名のフィルタリングから始めて、日付フィルタリング用の jquery UI datepicker も追加しました。これにより、緑色のフィルター領域で何かを変更すると、データ テーブルがフィルター処理されます。
ここでの適切なコードは、196 行目のself.filterClaimsです。
2 番目のフィドルはhttp://jsfiddle.net/tq8zc/にあり、正しく動作しません。ここでのフィルタリングは、「フィルター」ボタンをクリックするまで開始されません (これは私が本当に望んでいる動作です)。テーブルをフィルタリングしますが、その選択/ドロップダウンのプロバイダー名の一意のリストを生成するself.providersも吹き飛ばします。したがって、これをフィルター処理する前に、複数のプロバイダー名のリストがあります。フィルタリングすると、「フィルター」を押す前に選択したプロバイダーのみが表示されます。
ここに関連するコードは、166 行目のself.claimsFilteredです。
かなり明らかな何かが欠けているように感じ、コードを他の人に見てもらうことができるかどうか疑問に思っていました。
助けてくれてありがとう!
c# - 圧縮するシーケンスの数が実行時まで不明な場合の Observable.Zip
承認プロセスをモデル化する必要があります。以前はかなり単純でした。2 つのロールが何かを承認する必要があり、その後、次のステップに進むことができました。
ただし、新しい要件があります。何かを承認するために必要な役割の数はさまざまです。
ここでかなり明白な何かが欠けているように感じます...誰かが私を正しい方向に向けることができますか?
編集
明確にするために: 承認プロセスは項目ごとに行われます。承認が到着する順序は定義されていません。1 つのロールが項目を複数回承認してもかまいません。
knockout.js - テンプレート内の Knockout.js $parents キー名とオブザーバブルの削除
ノックアウトに関して 2 つの簡単な質問があります。
$parents キーを取得するにはどうすればよいですか。私のビューモデルが次の場合:
私は3つのテンプレートを持っています。最初のテンプレートはModelA、2番目のModelB、3番目のModelCをレンダリングしています.ModelCテンプレートで次のものを取得するにはどうすればよいですか:
/li>実行時に ModelC から観測可能な someprop を削除するにはどうすればよいですか。これをModelCテンプレートに埋め込もうとしました:
そしてこれはルートページにあります
しかし、それは機能していません。
data-binding - ドロップダウン変更で観測可能な値を変更するKnockoutJs
このドロップダウンには、車両が新品または中古の場合のオプションがあります。
そしてこの入力:
選択したドロップダウンの値が「新規」の場合、入力を無効にする必要があります。使用する場合、入力を有効にする必要がありますが、値を入力すると、オブザーバブルがこの値を取得し、ドロップダウン値を「新規」に変更すると、オブザーバブルはゼロになる必要があります。 。
binding - knockout.js で 2 つのオブザーバブルをバインドする
たとえば、2つの単純なオブザーバブルがあります。
ひとつのように振る舞ってほしいので、どちらかが変わればもう一方も変わります。
一般的なケースでは、観測可能なオブジェクトを 1 つだけ使用して、複数の dom 要素にバインドする方がよいことを私は知っています。しかし、私の場合、これらのオブザーバブルは異なるテンプレートとオブジェクトに存在するため、1 つの変数にすることはできません。
現在、あるオブザーバブルを別のオブザーバブルにサブスクライブし、その逆も同様です。
ただし、1 つのオブザーバブルの値を変更すると、2 番目の値が更新されますが、波及効果が発生し、最初の値が無限に更新されます。
無限ループを引き起こすことなく、一方の値を変更するときに他方の値を設定する、2 つの個別のオブザーバブル間の双方向バインディングを設定するにはどうすればよいですか?
javascript - knockout.jsを使用してcssクラスをObservable Array item.chosen値にバインドする
私は Knockout.js にかなり慣れていないので、何かが足りないだけかもしれません。「選択された」状態が配列内の項目のサブ値を反映するボタンとして機能する div のセットを作成しようとしています。
このフィドルを参照してください: http://jsfiddle.net/bleiddyn/RepnY/
抜粋:
div の初期表示は正しいです。クリックイベントでオブザーバブル配列内の値を問題なく変更できるようです。ただし、表示される div はこれに応じて css クラスを変更しません。
配列内の項目であるオブジェクトの子は、それ自体では観察できないことに気付きました。ただし、 valueHasMutated() への呼び出しで問題が発生することはありませんか? これは、動作を実現するための最も洗練された方法ではない可能性があります。
JavaScript を学んでいる人を助けたい人はいますか?
knockout.js - 同じオブザーバブルのサブスクライブでオブザーバブルの以前の値を取得する
ノックアウトで、新しい値を受け取る前に、オブザーバブルへのサブスクリプション内でオブザーバブルの現在の値を取得することは可能ですか?
例:
f# - 副作用のある F# オブザーバブル フィルター
いくつかのコマンドを実行する 1 つのオブザーバブルにマージされる多数のイベントがあります。コマンドが成功すると、なんらかの結果が発生します。さらに、コマンドをログに記録する必要があります。
コード的にはこんな感じ
関数はexec_action
、ツリービューの編集などの副作用をもたらします。これが成功した場合、プロパティOutlineEdited
は に設定されtrue
ます。
私はこれを次のようなものでフォローすることを望んでいました
しかし、Observable.filterは、サブスクライブしたobserverごとに1回実行されることがわかりました。副作用が繰り返されることを意味します。
exec_action
2回実行せずに同じ結果を達成する別の方法を提案できますか? 可能であれば、可変変数を使用する必要がないようにしたいと考えています。
css - Ember.js-オブジェクトのプロパティに基づいてCSSの幅を更新します
@andorovの回答で述べたように、OPの理想的なコード( Ember1.10の時点で<div style="width:{{model.width}}">
ほとんど機能します)
私はEmber.jsを初めて使用しますが、CSSを動的に変更するのは難しいと感じています。これが私が何を意味するかを説明する例です:
以下のコードは機能しませんが、私の目標を説明しています。ハンドルバーテンプレートを使用して、これを実現したいと思います。
つまり、プロパティが変更され
<div>
たときの更新の幅だけが必要です。objWidth
javascript - KnockoutJSは入力フィールドをfalse値に設定できません
<input>
aの値をfalseに設定するにはどうすればよいですか?trueは正常に機能します。
モデル:
HTML: