2012-02-20 2 views
1

私は、バックボーンやノックアウトのようなフレームワークについて多くの研究をしてきましたが、密なオブジェクト階層を扱い、オブジェクトパラメータをDOMにバインドする際に最適な選択肢を見つけようとしています。サブオブジェクトをきれいに処理するJavascriptフレームワークですか?

私は独自のパラメータを持つオブジェクトで作業していますが、オブジェクトも含まれています。これらのオブジェクトは、独自のパラメータを持ち、オブジェクトなどを含みます。約5〜6個のオブジェクトのレベル。例:

var Program = { 
    id: 123, 
    name: "some name", 
    cycle1 { 
     cycleName: "another name", 
     startDate: "1-1-2012", 
     day1 { 
      startDate: "1-1-2012", 
      metaData { 
       foo: "bar", 
       foo2: "bar 2" 
      } 
     } 
     day2 { 
      startDate: "1-1-2012", 
      metaData { 
       foo: "bar", 
       foo2: "bar 2" 
      } 
     } 
    } 
    cycle2 { 
     cycleName: "another name", 
     startDate: "1-1-2012", 
     day1 { 
      startDate: "1-1-2012", 
      metaData { 
       foo: "bar", 
       foo2: "bar 2" 
      } 
     } 
     day2 { 
      startDate: "1-1-2012", 
      metaData { 
       foo: "bar", 
       foo2: "bar 2" 
      } 
     } 
    } 
} 

これは非常に単純化された例ですが、考え方を示しています。ここには、未知数のCycleオブジェクトが含まれるProgramオブジェクトがあります。このオブジェクトには、MetaDataオブジェクトを含むDayオブジェクトが含まれます。繰り返しますが、その数は完全に可変であることがほぼ確実であり、各項目はDOM要素にバインドする必要があります。

私はバックボーンが本当に入れ子になっていないことを知っています...そしてノックアウトもそうではないかもしれないが、私はおそらくもっと速くそれを突き刺すことができると感じる。

+0

「取り扱い」とは、具体的にはどういう意味ですか?言い換えれば、オブジェクトでフレームワークを*実行することを望むのは何ですか? – Pointy

+0

良い質問です。ハンドルでは、単にDOMバインディングを意味します。各プロパティはテキストフィールドにバインドされる必要があり、状態を切り替える必要があるdivにネストされます。 addClass( "。active")を1つに追加し、他のすべてのものから削除します。私はそのすべてを手続き的に行うことができますが、扱いにくく、保守が難しく、拡張性も低いです。 –

答えて

0

私はBackboneについては言えませんが、Knockoutはネストされたオブジェクトをうまく処理します。

たとえば、メインオブジェクトを反復するために使用するテンプレートを設定し、そのテンプレート内で別のテンプレートを使用してサブオブジェクトを反復するなどの方法で要素を設定することができます。

または、メインテンプレート内のサブオブジェクトを直接反復することも、ユースケースに最も適したサブオブジェクトを反復することもできます。

+0

ノックアウトが私のシナリオをうまく処理するようです。 BackboneのMVC-ishスタイルのために多くの人が自分自身に落ちているようですが、Knockoutは特にDOMのようなものを考えてバインドしているときには意味があるようです。 –

関連する問題