多くの変数を使用して、堅牢なアプリケーションを成長させています。より高いレベルで変数を作成すると、それは系統を継承する必要があります。変数が継承されることを管理するためのコードを書き続けるには、多くの時間がかかります。常に渡したい変数がわかっている場合(必ずしもバックアップする必要はないため、これらは必ずしもグローバルではなく、単方向であるだけです)、ネーミングを管理することなく、これを達成するために初期化関数にどのメソッドを記述できますかコンベンション?
このコードは各レベルで最も役立つ可能性が高いため、子ビューに渡すパラメーターを親レベルで作成すると、各子ビューはパラメーターを繰り返し処理し、渡された名前でそれらをアタッチします。
したがって、親 View がありFruits
、すべての子ビューOranges
を作成し、、、およびのOranges
すべてのNavels
およびを作成する場合、各属性を反復処理し、それ自体をビューに設定する関数が存在します。親ビューで作成された 5 つの数値属性がある場合、各レベルで、、、のようになります。Valencias
initialize(options)
Oranges
Navels
Valencias
options
options
this.1 = options.1;
this.2 = options.2;
this.3 = options.3;
this.4 = options.4;
this.5 = options.5;
これにより、親ビューでのみ名前を管理できますが、名前は各子のファイルには含まれないため、名前を知る必要がありますが、属性は階層全体で一意であるため、これで問題ありません。一意の名前は、子ビューに渡す前に操作できます。
私は中間の子ビューに対して次のようなことを試みていました:
define([ … ], function( … ){
return Backbone.View.extend({
events : { … },
// options = { 1:thing1, 2: thing2, a: itA, b: itB }
initialize: function(options){
if (options) {
for (var key in options) {
'this.' + key = options[key]; //Here is the line that would accomplish this
}
} else { //…defaults… }
},
render: function(){
// If i needed to manipulate them, I could accomplish this here
var params = {
1: this.thing1,
2: this.thing2,
a: this.itA,
b: this.itB
};
new childView(params);
}
});
});