問題タブ [knockout-mapping-plugin]

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 投票する
1 に答える
1897 参照

javascript - AJAX を介してオプションをバインドするときに、select 要素のデフォルト値を Knockout に渡すことは可能ですか?

2 つの異なる AJAX 呼び出しを使用して、現在の値と利用可能なオプションの両方を取得する必要があります<select />(いくつかの理由でそれらをキュー/チェーンすることはできません)。

それが問題かどうかはわかりませんが、現在の値を読み取る呼び出しは、使用可能なオプションを毎回読み取る呼び出しの前に完了します。

Knockout 2.0.0 と Knockout Mapping 2.0.3 を使用して select を でバインドしdata-bind="options: values, value: valueComputed"ましたが、利用可能なオプションを取得する呼び出しが完了するまで、Knockout が最初の AJAX 呼び出しによって設定された値を削除/無視していることがわかりました。現在の価値。

これは正しいです?ノックアウトに「これが現在の値です。利用可能なオプションが利用可能になったら、それを選択してください」と伝えることはできますか?

いくつかのテストの後、私はクラッジを思いつきました.selectの値にプレーンなオブザーバブルをバインドする代わりに、値をインターセプトし、新しい値が未定義の場合は基になるオブザーバブルを変更しない計算されたオブザーバブルを使用しました。

私は何か悪いことをしていますか?

jsFiddle の例: http://jsfiddle.net/KeNUU/

私が使用している JavaScript コード:

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

knockout.js - KnockOut マッピング階層 JS オブジェクト

KnockOut マッピング プラグインを使用してビュー モデルを作成しようとしています。

これがオブジェクトです。基本的に以下は単語を含む文です。

3 つのビュー モデルが必要です。

記事には文が含まれている必要があり、文には単語が含まれている必要があります

これを以下のように View に入れたいと思います;

私が達成しようとしていることが実行可能かどうかさえわかりませんが、マッピングが必要だと思いますが、これを機能させることはできません。

ここに私の試行があります。おそらく私の問題をよりよく理解するのに役立つでしょう http://jsfiddle.net/sureyyauslu/2wTjy/6/

事前にどうもありがとう...

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

javascript - チェックボックスとクリックハンドルを使用したノックアウトリストバインディング

これが私のjsfiddleの説明です:http: //jsfiddle.net/hawaii/gN6CT/10/

jqueryテンプレートを使用してulにバインドするjsonオブジェクトのリストがあります。各liには、アイテムの詳細とともに、各アイテムのチェックボックスがあります。私がそれを機能させたい方法は次のとおりです。

ユーザーがチェックボックスをクリックすると、アイテムが選択されたリストに更新されます(これが機能するようになりました)

ユーザーがアイテムの詳細をクリックすると、アイテムが選択され、右側にすべての詳細が表示されます。そのため、アイテムの詳細を要素内に配置しています。

フィドルからわかるように、期待どおりに機能していません。viewModelが最初に適用されたときでもクリックバインディングが呼び出され、チェックボックスをクリックするとクリックイベントも呼び出されます。

ノックアウトの達人がこれについて私を助けてくれませんか。ありがとう

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

html - Knockoutjsの検証とサーバーの検証

こんにちは私はKnockoutjsに少し慣れていません。たとえば、メールアドレスを持っているフォームを投稿したいというシナリオにいます。メールアドレスは一意である必要があります。

サーバー上で、電子メールアドレスが一意であるかどうかを確認してから、たとえば、validationjsonクラスを返します。

{isEmailUnique:false、isPasswordStrongEnough:true; }

どうすればknockoutjs検証を使用して、これらのエラーをきちんと表示できますか?

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

javascript - KnockoutJS: マッピングを使用してビューモデルにデータを更新/挿入する

私はかなり長い間これを理解しようとしてきました。この問題に対処するものは見つかりませんでしたが、間違っている場合は修正してください。

問題: ネストされた配列/オブジェクト構造を持つ JSON API からのデータが入ってきます。マッピングを使用して、最初にモデルにデータを入力します。これを更新するには、新しいデータが届いたらモデルを拡張するか、既存のデータを更新します。

私の知る限り、マッピング オプション キーはこのトリックを実行するはずですが、マッピング オプションの機能を誤解している可能性があります。

この例で表されるように、問題を煮詰めました。

フィドル: http://jsfiddle.net/mikaelbr/gDjA7/

ご覧のとおり、最初の行でデータが挿入されます。すべて良い。しかし、更新しようとすると、コンテンツが置き換えられます。3 番目のマッピングも同様です。コンテンツを拡張するのではなく、コンテンツを置き換えます。

私はそれを間違って使用していますか?マッピングを使用する前に、コンテンツを「手動で」拡張しようとする必要がありますか?

解決策の編集:
現在のすべてのモデルを格納する 2 番目のヘルパー配列を用意することで、このケースを解決しました。新しいデータでは、この配列を拡張し、ビュー モデルを更新して蓄積されたアイテムを含めました。

更新時 (私の場合は WebSocket メッセージ)、モデルをループし、問題の項目の内容を変更し、メソッド valueHasMutated() を使用して値の変更を Knockout ライブラリに通知しました。

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

knockout.js - ko.mapping.fromJS を使用して配列を observableArray にマッピングする奇妙な動作

ノックアウト マッピング プラグインを使用して、オブジェクトの配列を observableArray にマップしようとしています。どういうわけか、これは私にはまったく機能しないようです。

確認するために Chrome コンソールでテストしました。

私は何を間違っていますか?次のことを試してみると

それはすべてうまくいきます。唯一の違いは、オブジェクトの配列ではなく、単一のオブジェクトのみを提供することです。しかし、マッピング プラグインのドキュメントを正しく読めば、通常の配列から observableArray を作成できるはずです。

助けてくれてありがとう、
アンドレアス

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

.net - マッピング プラグインの使用時に Knockout.js オブザーバブル配列がサーバーから更新されない

Knockout.js とそのマッピング プラグインに少し問題があります。基本的に、データなしで開始し、ページの読み込み時に Ajax リクエストを作成して情報を読み込みたいと考えています。Ajax リクエストが意図したとおりに機能していることはわかっています。返されたデータをコンソールに記録しているためです。

コンソールはデータを正しく記録しています。Ajax リクエストが正常に機能していることはわかっています。

コンソールはデータを正しく記録しています。 Ajax リクエストが正常に機能していることはわかっています。 l

マークアップを表示:

私も電話してみました:

しかし、それはバインディングがセットアップされていないとKOが不平を言う原因になるだけです。 ここに画像の説明を入力

誰かが私が間違っていることを見ることができますか? 最終的には、ビュー モデルにさらに多くのイベントを関連付けたいと考えていますが、これは別の課題になることがわかっています。しかし、今のところ、Ajax リクエストが終了したときにバインディングを適切に更新することさえできません。

ここでチュートリアルを終了します: http://knockoutjs.com/documentation/plugins-mapping.html

- - - - - - - - - - アップデート - - - - - - - - - - - - -

この StackExhange Post を参照して、自分の質問に答えることができました。

ノックアウト JS マッピング プラグインの混乱

問題は、これが機能するために空のビューモデルが必要だったことです。

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

knockout.js - KnockoutJS-マップされたオブジェクトを監視する監視可能なプロパティを作成するにはどうすればよいですか?

ここで、問題を示す簡単なデモを作成しました。

http://jsfiddle.net/boblauer/eCugY/

基本的に、userプロパティを更新するときにuserUpdated関数を実行したいのですが、ページが読み込まれるときに1回だけ実行されます。

どんな助けでも大歓迎です。

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

knockout.js - オプションテキストは、fromJSで更新された後、関数文字列になります

値がko.mapping.fromJSから更新された後、オプションテキストが関数の文字列に変換されるのはなぜですか?

サンプル: http: //jsfiddle.net/tYnc6/24/

HTML:

Javascript:

更新が押された後、オプションテキストが関数になることに注意してください。

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

ajax - observableArrayAJAXを更新するKnockoutJSの適切な方法

KnockoutJSで、AJAXコマンドが実行されるたびにJSONデータのobservableArrayを更新する適切な方法は何ですか?

現在、viewmodel.items([])のようなものを使用して配列をブランクにし、サーバーからのJSONデータを再入力しています。KnockoutJSマッピングプラグイン(これを行う唯一の方法である可能性があります)を使用する以外に、正しいパスは何ですか?

私のサーバーロジックは毎回同じデータの一部を送信するので、複製が必要でない限り、アイテムを繰り返して配列にプッシュすることはできません。

////今日のやり方を追加する////

なぜこのようにしているのかわかりませんが、これが私が最初に更新する方法を理解した方法です。つまり、基本的に、前に述べたように、JSONデータを取得し、それを次のようなものに渡します。

JSON配列のノードごとに。ご覧のとおり、通過するすべてのデータでビルドされるカスタムオブザーバブルがいくつかあります。これは間違った方法かもしれませんが、これまではうまく機能していました。