バックボーンに新しくて、何か問題があります。私が保守を任されているアプリケーション以来、これを一般的なコードなしの方法で求めようとすると、数千行もの長さです...私が明確にできることを望みます。親オブジェクトの兄弟であるモデルのインスタンスの属性を設定するにはどうすればよいですか?
私はメソッドmyMethod()を持っています。これはモデルApp.Personに属しています。
私はApp.Personのいくつかのインスタンスを保持するコレクションApp.PersonListを持っています。
オブジェクトのインスタンスであるオブジェクト(myDonationForm)内に作成しているインスタンス(myPersonList)App.PersonListがあります.App.DonationForm(ここで私の快適ゾーンの外にさらに移動します:App.DonationForm Base.jsと思われるBaseというオブジェクトを拡張するControllerという名前のオブジェクトを拡張しています。ここで何が起きているのかはほとんど分かりませんが、私の必要性は重要ではないと思います)。
また、App.DonationFormでは、モデルApp.Errorsのインスタンス(myErrorMsg)があります。私はmyMethod()からmyErrorsの属性を設定できるようにしたいが、myErrorsを参照するための構文を実行したり、ネストされたオブジェクトのツリーを走査したり、パラレルステップをやり直したりすることはできない。
私はそれが理に適ったと思います。視覚化するには
myDonationForm, inst of App.DonationForm, ext Controller
|--myPersonList, inst of App.PersonList, ext Collection
| |--myPerson[1], inst of App.Person, ext Model // I want to change from here
| | +---myMethod()
| |--myPerson[2], inst of App.Person, ext Model // or from here
| +---myMethod()
+myErrorMsg, inst of App.Errors, ext Model // an attribute of this.
ありがとうございます。
編集コードスニペットを追加する(私はピアレビュー画面を得たゴマと私は偶然Hoyenの答えではなく、自分の質問を編集してみました!それを実現していない、ぐふ)
App.SpecialDonationForm = App.DonationForm.extend({
[...]
initialize: function(options){
App.DonationForm.prototype.initialize.call(this, options);
[...]
},
start: function(){
App.DonationForm.prototype.start.call(this);
[...]
this.myPersonList = new App.PersonList(this.initialData);
this.myErrorMsg = new App.Errors();
[...]
返信いただきありがとうございます。 "Uncaught ReferenceError:myErrorMsgが定義されていません" – Sapphireblue
あなたのApp.PersonクラスにmyErrorMsgのインスタンスがありません – Hoyen
私は質問をpared-downコードスニペットで更新します。 – Sapphireblue