2012-05-03 15 views
1

ネストされたテンプレートから親データにアクセスしようとしています。外部コンテキストからプロパティデータを取得

これによれば、同様のことをやろうとしていますが、私はエラー:data.parentが定義されていません。

は私が宣言

{{for Rooms tmpl="#RoomTmpl" layout=true /}} 

#RoomTmpl

<script id="RoomTmpl" type="text/x-jsrender"> 
    {{:parent.data.Room1Label}} 
    {{for #data}} 
     {{:RoomName}} 
    {{/for}} 
</script> 

を持っている私の 'マスター' テンプレートでは、私は様々な組み合わせを試してみましたが、常に私はエラー

{{:parent.parent.data.Room1Label}} 
{{:#data.parent.parent.data.Room1Label}} 
{{:#data.parent.data.Room1Label}} 
{{:#data.parent.Room1Label}} 
を取得します

誰もが知っていますか?こんにちは?

- SOLUTION -

正しいsynatxは、あなたが望むを通じてステップアップし、親ビューからデータを取得したい

#parent.parent.data.Room1Label 

答えて

7

です。ビューはテンプレートをレンダリングした結果であり、{{for ...}} ... {{/ for}}や{{if ...}} ... {{/ if}}は子ビューを追加します。配列を 'for'タグ、{{for myArray}}に渡すと、データ配列を反復処理し、データプロパティが配列である1つの子ビューにつながり、そのビューは子ビューのコレクションを持ちます各レンダリングされたアイテムについて。

#viewはビュー、#view.parentは親ビュー、#view.parent.dataは親ビューのデータなどです。#fooは#view.fooの略なので#データはデータ、親のビューなどです。

唯一の問題は、親の数を正しく数えることです。 {... properties ...、test:function(){debugger;}}。データにメソッドを追加することで、何が起きているのかをデバッグすることができます。そのデータ項目のテンプレートの任意の場所に{{:test()}}を追加し、コンパイルされたテンプレートに進みます:ビューとその親などを見てください。

別のトリックです。任意のブロックタグにテンプレート変数を設定すると、ネストされたテンプレートからテンプレート変数にアクセスできます。あなたは、もはや親ビューからステップアップを心配する必要があり、そのように

{{:~label}}

:だからあなたの例では、

{{for Rooms tmpl="#RoomTmpl" ~label=Room1Label layout=true /}}

を置くことができ、その後のようにネストされたテンプレートからアクセスします。

関連する問題