問題タブ [ember-model]
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.
jquery - キャッチされていない TypeError: オブジェクト [オブジェクト オブジェクト] にはメソッド 'deleteRecord' がありません
ここではember-modelを使用しています。フィクスチャのノードの 1 つである配列からレコードを削除しようとしています。
この ( cart_items
) 配列はhasMany
モデルと関係があります。
ここに完全なコードを投稿しました。
ここでは、次のコードを使用してテーブルから行を削除しようとしています:
しかし、それは例外をスローしています:Uncaught TypeError: Object [object Object] has no method 'deleteRecord'
これを使ってみたのと同じこと。ここでは、例外は発生していませんが、レコードも削除されていません。
ここで何が起こっているのかわかりませんか?
私が見つけることができないコンテキストの問題があると思います。このjsfiddleを機能させるのを手伝ってくれる人はいますか?
ember.js - 子レコードと ember モデル
[アップデート]
これまでご協力いただきありがとうございました。
静的データを含む Comment レコードが埋め込まれた新しい Post レコードを作成できました。この方法を介して:
しかし、既存の Post に Comment レコードを作成するために、CommentsController または Route を介して現在の Post を取得する方法がわかりません。
ランダムな SO と記事を検索してふるいにかけた後、現在の Post を呼び出すための一連のメソッドを試しましたが、まだダイスはありません。
私はに設定しようとしましvar post = App.Post.create
た:
私もCommentsController
持つように設定しましneeds: "post"
た。
私も追加しようとしました:
アクションもルートで定義する必要があると述べた記事を読みましたが、でaddComment
関数を定義する必要がありますPostRoute
か?
var post = App.Post.find(post)
使用する必要があるか、その性質のものを使用する必要があるかどうか疑問に思っています。
私はここで正しい軌道に乗っていますか?ほうきのクローゼットにいる象を暗闇の中で撮影していて、まだ行方不明になっているような気がします...
ember.js - 関連レコードを適切に追加する方法
コメントのコレクションと投稿のコレクションがあります。
どうすればよいですか:
- 新しい埋め込みコメントを作成します。
- 埋め込まれていないコメントを作成し、その作成をPost モデルに追加
comment_id
します。comment_ids: []
post_id
埋め込まれていない場合はコメントに入力できますがcomment_id
、投稿に追加するのに苦労しています。
ember.js - 子レコードを既存の親レコードに追加する方法は?
私は、この件に関する何らかのヒントを求めて Stack Overflow をグーグルで検索してきましたが、情報はせいぜい散らばっています。
Comment
新しい子レコード ( ) を作成し、それを既存の親レコード ( ) に保存しようとしていますPost
。私は Ember-Data ではなく Ember-Model を使用していますが、ヒントや指針をいただければ幸いです。
現時点では、新しい埋め込みの作成に成功していますComment
が、それは新しいレコードで作成された場合のみです。そう: Post
(子レコード) をPost
適用するために、現在ロードされている (親レコード) をロード/取得するにはどうすればよいですか?Comments
別のコントローラー/モデルにアクセスするためにneeds:
andthis.controllerFor
を使用して、コントローラーの依存関係を調べてきましたが、これらのものを意味のあるものに結び付けることができませんでした。this.modelFor
content
とにかく、これが私がこれを行う適切な方法につまずくことができるかもしれないことを期待して、アプリケーションコードを削ったものです...
ルート
他のすべてのリソースとルートを削除したのでApp.Post
、 、App.PostIndex
、が残りましApp.Comments
た。ここでのルートが問題だと思います。ロードされたPost
レコードをComments
ルートで使用するメソッドを適切に実装していないと思います。
コントローラ
これは私の現在のコメントコントローラーでありPost
、埋め込みで新しいを作成できますComment
。を作成する多くの例を見つけて与えられましたComment
が、どれもうまくいかないようです。基本的にvar post = ...
、現在ロードされているレコードとして を定義するのに苦労しています。試行錯誤の試みでさまざまなアプローチを実装しました。これまでのところ、私は試みました:
var post = App.Post.create();
、未定義のプロパティを返します。これは、新しいレコードを作成するためです。ただし、これに関連して見たすべての例が彼らの記録をそのように定義していたので、私はそれに挑戦しました。var post = this.get('post');
、 undefined で「get」を呼び出すことはできません。Comments
コントローラーとコントローラーの両方で現在の投稿を定義するこの方法を使用してみましたPost
。var post = this.get('controllers.post.content);
、使用しているバックエンドから「循環エラー」を返します。var post = App.Post.find();
、 undefined で「get」を呼び出すことはできません。var post = App.Post.find(1);
、再び、未定義の「get」を呼び出すことはできません。これは人々が提供する繰り返しの例の1つであるため、試してみると思いました。私が使用するバックエンドは、各レコードに独自の ID を適用します。.find()
メソッドで動的 ID 値を使用して、ロードしたばかりのモデルのみを取得できるかどうか、またはその方法が不明です。
ルートとコントローラーの依存関係を適切に設定していないと思いますか?
誰かが提案、関連するリンク、または修正を持っている場合、私は非常に感謝しています.
この 1 つの (一見単純な) 問題/ユース ケースは、この時点で機知に富んでいます。
ember.js - Ember で ObjectController 内のモデルを更新しようとするとエラーが発生する
ページの読み込みは、ユーザーがユーザーのプロフィールを表示しているときに開始されます。そして、彼はいくつかのアクションを実行し、私のコードは ajax 呼び出しを実行してユーザー タイプを更新します-
しかし、ユーザー リスト テーブルに移動すると、Ember は UsersRoute からすべてのユーザーを取得しようとします。
次に、次のようなすべてのエラーが発生します。
エラー イベント `loadedData` を処理しようとしました: deleteRecord 後にオブジェクトが更新されませんでした
ここの記事で問題が説明されていると思います-
http://www.thomasboyt.com/2013/05/01/why-ember-data-breaks.html
キャッチされないエラー:
loadedData
rootState.loaded.updated.uncommitted の状態でイベントを処理しようとしました。{} で呼び出されるこれが意味することは、現在の状態ではできないことをレコードにしようとしているということです。これは、現在保存中のレコードを更新しようとしたとき、または削除されたオブジェクトのプロパティをレンダリングしようとしたときによく発生します。
ただし、逆の場合は、最初にユーザー リスト テーブルに移動し、次にユーザーのプロファイルを表示してユーザーを更新します。このエラーは発生しません。
編集:
ユーザーからの応答例:
単一ユーザーの場合:
ember.js - ローカルストレージをクリアせずに、ember モデルに関連付けられたすべてのレコードを削除する方法は?
このstackoverflowの回答で指定されたプログラムを拡張して、すべてのレコードを一度に削除するプログラムを作成しました。ただし、削除はバッチでのみ行われ、すべてを一度に削除するわけではありません。
これは、このJSBinで使用している関数のスニペットです。
すべてのレコードを一度に削除できるようにプログラムを変更する方法はありますか?
model.destroy() と model.invoke('deleteRecords') も試しましたが、機能しません。
どんな助けでも大歓迎です。ご協力いただきありがとうございます!
javascript - Ember-Model で新しいレコードがあるたびにビューを更新する
シンプルな Ember.js アプリがあります。があり、application view
そのビューの中に がありresults view
ます。
私は ember-model を使用して、サーバーから JSON をフェッチしています。
人々が何が起こっているのかを公平に見ることができるように、できるだけシンプルにしました。
基本的に、アプリケーション ビューにボタンがあり、クリックするたびに Map.Winery.findAll(); を呼び出すアクションを呼び出します。(サーバーからデータをリロードします)。
私が望むのは、レコードに新しいデータがロードされるたびにresults view
、新しい結果で更新する必要があるということです。
アプリケーション.hbs
application_controller.js
結果.hbs
results_view.js
ここでの質問は次のとおりです。サーバーからレコードに新しいデータがロードされるたびに、結果ビューが更新されるようにするにはどうすればよいですか?
できるだけ多くの関連コードを挿入してみました。ご不明な点がございましたらお気軽にお問い合わせください。
ありがとう