問題タブ [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 に答える
1627 参照

jquery - ネストされたノックアウトテンプレートを使用してネストされたデータを表示する

ノックアウトを使用して折りたたみ可能な行を持つテーブルを作成しようとしています。各「親」行はデータ構造の最上位にあり、各「子」行はメンバー配列の要素です。

サーバーからデータを更新すると問題が発生します。データは更新されますが、「親」行のチェックボックスがオフになっているため、DOMオブジェクトが置き換えられていることがわかります。タイマーを使用してデータを更新することで、この問題を実証するフィドルがあります。

http://jsfiddle.net/jdlogicman/m2LWk/

ネストされたforeachを使用する代わりに修正する{{each}} 必要があることを読みましたが、それを機能させることができません。上記のフィドルのコメントアウトされたセクションを参照してください。

既存の質問がこれに対処している場合、私はその方法を知ることができませんでした。どんな助けでも大歓迎です

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

javascript - 私のオブジェクトの何が問題になっていますか(knockoutjsマッピングプラグインに関して)

これで髪を抜いています。何が起こっているのかわかりません。マッピングに関するすべてのチュートリアルを読みましたが、明らかに何かが足りません。

私はもう試した

私の古いコードでは、これを行うことになりました。

しかし、私のJSONは異なって見えました。ネストされたオブジェクトはなく、最初と最後に角かっこがあり、配列になっています。これはかなり基本的なことのようです。エラーはまったく発生していません。助けてくれてありがとう。

編集

http://jsfiddle.net/gjemN/

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

javascript - KnockoutJsを使用して初期マッピングを追跡するための最良の方法

私のアプリケーションでは、次のパターンが何度も繰り返されていることがわかりました(以下のコードを参照)。最初のロードではBindMyEvents(true)を呼び出し、その後のデータ取得ではBindMyEvents(false)を呼び出す必要があります。

それは怠惰にロードされるので、データをHTMLソースにシリアル化したくありません。ブールフラグをBind()メソッドに渡すよりも良い方法はありますか?ノックアウトでこれを達成するための標準的なパターンはありますか?

ビューモデル定義内でviewAlertsModel.alerts=nullを設定してから、Bind関数にこれをチェックさせるべきだと考えていました。nullに設定されている場合は、マッピングメソッドを呼び出してからapplyBindings()を呼び出しますか?

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

knockout.js - KnockoutJS : ko.ToJSON(this) が動作しませんか?

プロパティ " text " と関数 " save "を使用して MyViewModel オブジェクトを定義する次の Java スクリプト。


そして、次のボタンが定義されています。


ボタンがクリックされたときの結果:

  • this.text() を使用してプロパティにアクセスすると正常に動作します
  • java-script オブジェクトを JSON オブジェクトに変換する: ko.ToJSON(this) は機能せず、エラーがスローされます: 「エラー: オブジェクトはこのプロパティまたはメソッドをサポートしていません」

おそらく些細な何かが欠けているか間違っているのでしょうが、私には見えません。任意のヒント ?

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

javascript - knockoutjs のデータ読み込みパターン

KnockoutJS が私のアプリケーションで機能するかどうかを理解しようとしています。私のデータモデル(簡略化)は次のとおりです。

特定topicの に対して、1 つ以上のqueryインスタンスがあります。各クエリには、postingインスタンスのリストが含まれています。それぞれpostingがドキュメントを参照します。インスタンスが異なるインスタンスに属している限り、複数のインスタンスpostingを参照できます。documentpostingquery

postinga が新しいドキュメント (まだ取得されていないドキュメント) を参照する場合query、新しいインスタンスを作成したいと思います。がdocument既に存在する場合 (ID が一意)、再利用したいと思います。

サーバーから返される JSON データを構造化するためのいくつかの可能な代替手段を確認できます。

  1. 転記をシリアル化するときは、最初にすべてのドキュメントのリストをシリアル化し、それらでマスター ドキュメント リストを更新します。次に、ドキュメント ID への参照を含む投稿を送信します。
  2. 各ドキュメントを投稿のプロパティとして完全にシリアル化し、そのエントリが冗長かどうかを調べます。マスター リストに冗長でないエントリを追加します。

データをシリアル化するための合理的なパターンは何ですか? これを簡潔に表現するマッピング プラグイン マジックはありますか? 私は、JSON を生成しているサーバーを制御しており、それを理にかなった方法で構造化することができます。

ありがとう、

遺伝子

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

knockout.js - KnockoutJS: マッピングで生成された ObservableArray 内のオブジェクトに監視可能なプロパティと関数を追加する

私はKnockoutJSが初めてで、プラグインko.observableArray()によって作成されたように、生成されたオブジェクトに追加のプロパティとメソッドを追加しようとして立ち往生しています。mapping


ここに私がいるところです:

  • 私はJSON配列を持っていますUsers
  • ko.observableArray()マッピングプラグインで作成しました
  • それぞれのテーブル行を作成するテンプレートを持っていますがUser、これまでのところとても良いです:o)


これが私がやろうとしていることです:

それぞれUserにというプロパティがあります'IsActive'-このプロパティを切り替える各オブジェクトdata-bindのメソッドへのクリック イベントが必要です。User'IsActive'

この質問は有望に見えましたが、ビューモデル全体を JS で宣言する必要があるのは不必要な重複のようです (それが私がしなければならない方法でない限り!) - 生成されたオブジェクトを拡張することは可能ですか?

私は、追加のプロパティまたはメソッドを宣言し、mapping生成されたオブジェクトを拡張する方法があるこれらの線に沿ってもっと考えていましたが、この記事は、生成された配列内のオブジェクトを拡張するのではなく、単一のオブジェクトに関係しています。


コードは次のとおりです: http://jsfiddle.net/yZkSf/2/ (JS fiddle ではまだ動作していませんが、動作するようになったらこのリンクを更新します)。

ご協力ありがとうございました

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

knockout.js - KnockoutJSのカスタムバインディングでバインディング値を変更する

監視可能な配列の説明を切り捨てるために使用しているカスタムバインディングがあります。バインディングに返されるテキストを変更するための最善の方法を考えています。

大まかな説明は、ページの他の場所で使用されます。この切り捨てられたバージョンは、サイドバーで使用されます。これを実行するためのより良い方法についての提案を受け入れますが、これは私にとって最良の方法のように思えました。

viewModelは、マッピングプラグインを介してJSONファイルから生成されます。または、ビューモデルに直接切り捨てられたバージョンを追加します。

物事を見てくれてありがとう。

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

knockout.js - observableArray から変更された行のみを取得する最良の方法 (一括編集オプションがある場合)

一括編集オプション (MVC3) を使用して HTML テーブルにバインドするObservableArrayコレクションがあります。ユーザーがコミットするたびに、viewmodel リスト全体を送信するのではなく、コレクションから変更された行のみを送信したかったのですが、追跡する最善の方法があればアドバイスしてくださいまたは変更された行のみをフィルタリングします。

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

c# - asp.net mvcのJSONのフォーマット方法を変更するにはどうすればよいですか?

私はこのモデルを持っています:

そしてasp.netMVCreturn Json(...)は私にこれを与えます:

次のタイプを返そうとすると:List<Person>

しかし、私はこのようなものが欲しいです(可能であれば):

私の質問:

  • C#(asp.net mvc)が次のようなより良い形式でJSONを返すようにするにはどうすればよいですか:(注:データを無視してください。私の主なポイントは、メインコレクションとして「People」を使用して返すことです。どうすればよいですか。これ?JSON.net?)

    {"People":[{"Name": "JC"、 "Age":24、 "Colors":[{"ColorId":1、 "Name": "Red"}、{"ColorId":2、 " Name ":" Blue "}]}、{" Name ":" Albert "、" Age ":83、" Colors ":[{" ColorId ":2、" Name ":" Blue "}]}]}

  • または、 KNOCKOUT.JS MAPPING PLUGINをこのタイプのJSON形式で機能させるにはどうすればよいですか?(ノックアウトを知っている人のために)

    [{"Name": "JC"、 "Age":24、 "Colors":[{"ColorId":1、 "Name": "Red"}、{"ColorId":2、 "Name": "Blue "}]}、{"名前 ":"アルバート "、"年齢 ":29、"色 ":[{"色ID ":2、"名前 ":"青 "}]}]


更新(追加の説明/情報):

これは私のデータであり、リストを返したい

次のようなJSON形式で:

それが可能かどうか疑問に思っていますが、不可能な場合は、knockout.jsマッピングプラグインをMVCのjsonを返す方法に適応させるにはどうすればよいですか?

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

asp.net-mvc-3 - Knockout.js を使用してリストからアイテムを削除する

リストからアイテムを削除しようとしています。マッピングプラグインでノックアウト.jsを使用しています。私のコードは次のようになります。

Jsonにシリアライズ

テンプレート

KO JavaScript

HTML

質問

すべてが期待どおりに機能します。ただし、ボタン項目をクリックすると、画像のリストが削除ボタンとともに表示されます。ファイル名は未定義です。考え?

編集: KNockout.js マニュアルから引用: 「ハンドラーを呼び出すと、Knockout は現在のモデル値を最初のパラメーターとして提供します。これは、コレクション内の各アイテムの UI をレンダリングしている場合に特に役立ちます。どのアイテムの UI がクリックされたかがわかります。」

私が期待している Img オブジェクトを取得していないようです。何が返ってくるかわからない!