0

多次元配列の属性を含むモデルがあります。ビューのテンプレート関数で、この配列を解凍したいのですが、underscore.jsでこれを実現する方法がわかりません。私はグーグルで周りを見回しました、しかし私は簡単な例を見つけることができないようです。

たとえば、次は多次元配列です。

array(
    "elementTag" => "li",
    "elementClass" => "dashboard",
    "elementContent" => array(
        "elementTag" => "a",
        "elementContent" => "The Value I want to Display!!!",
        "href" => "#home"
    )
)

私のテンプレートの場合:次のようになります:

template: _.template('<<%= elementTag %> class="<%= elementClass %>">...</<%= elementContent %>>') 

の値をどのように表示しますelementContentか?:

表示したい値!!!

4

2 に答える 2

2

JavaScriptは、ドット表記を使用してオブジェクトのプロパティにアクセスします。

たとえば、phpに表示されるとおりに配列を投稿し、JavaScriptでは次のようにその構造を作成します。

var myObject = {
    "elementTag": "li",
    "elementClass": "dashboard",
    "elementContent": {
        "elementTag": "a",
        "elementContent": "The Value I want to Display!!!",
        "href": "#home"
    }
}

次に、それをバックボーンモデルのコンストラクターに渡すことができます。これは、フェッチ/リセットなどを呼び出すときにコレクションが内部で行うことです。

var model = new ElementModel(myObject)

model.get('elementClass') // returns "dashboard"
model.get('elementContent') // returns the element content object
model.get('elementContent').elementTag // returns the "a"

var myObject = model.toJSON() // returns the object in the same format as above

myObject.elementClass // "dashBoard"
myObject.elementContent.elementTag // "a"

通常、バックボーンでは、結果をmodel.toJSON()アンダースコアテンプレートに渡すため、@ fencliffが正しく回答すると、オブジェクトのすべてのプロパティがテンプレートで次の形式で利用できるようになります。

<%= elementTag %>
<%= elementClass %>
<%= elementContent.elementContent %>
// etc.
于 2013-01-12T22:41:32.333 に答える
1

私があなたを誤解しない限り<%= elementContent.elementContent %>、トリックをするべきです。

于 2013-01-12T22:31:09.583 に答える