簡體   English   中英

Ember.js:如何向View添加參數

[英]Ember.js: how to add parameters to a View

我想這很簡單,但作為一個Ember新手,我找不到解決方案......

所以讓我說我有這個非常簡單的觀點:

MyApp.MyTextView = Ember.View.extend({
    template: Ember.Handlebars.compile('{{value}}')
});

我想使用此視圖以顯示同一對象的兩個不同屬性。 這聽起來像我想在調用'我的視圖時添加參數。 在第二個視圖中,我希望能夠執行以下操作(假設我的內容對象是Person:{firstName:'toto',lasName:'titi'}):

MyApp.AnotherView = Ember.View.extend({
    template: Ember.Handlebars.compile('FirstName: {{view MyApp.MyTextView value="content.firstName"}} - LastName: {{view MyApp.MyTextView value="content.lastName"}}')
});

我也嘗試作為講解了利用手把的助手在這里 ,但它不工作(當我使用{{亮點的firstName}}或{{亮點content.firstName}}顯示什么是的firstName或content.firstName,而不是屬性值。 ..)

你們有什么想法嗎? 我被困在這里......

謝謝!

要將參數傳遞給視圖,您可以像這樣指定每個參數:

{{view App.MyView firstNameBinding="content.firstName" lastNameBinding="content.lastName"}}

這將允許你做:

template: Ember.Handlebars.compile('{{view.firstName view.lastName}}');

但是,您可以想象,當您添加更多屬性時,這將變得非常長。 因此,您可以簡單地將content對象作為context傳遞(但您不需要將其作為上下文傳遞 - 盡管那是另一天):

{{view App.MyView contextBinding="content"}}

(請注意, contextBinding是特殊的,它會更改視圖中的上下文。)

這樣,視圖將保存您傳入的對象,因此在您的視圖中,您現在可以執行以下操作:

template: Ember.Handlebars.compile('{{firstName lastName}}');

(你可以這樣做,因為content現在是你視圖的上下文。)

我已經敲了你一個快速的JSFiddle來解釋(希望!): http//jsfiddle.net/YVCrq/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM