2014-09-04 42 views
0

我已經接手了將網站重寫爲Ember應用程序的任務。 到目前爲止,我瞭解Ember路由,模型,控制器等的基礎知識,但現在我已經掛上了細節。 現在我遇到了如何實現Ember視圖和屬性綁定的問題。 我有一個這樣的元素:將網站重新整理爲Ember

<a class="someClass" href="http://example.com" data-imgone="public/images/firstimg.jpg" data-imgtwo="public/images/secondimg.jpg" data-title="someTitle" data-description="someDescription"> 
    <div> 
     <!-- some stuff --> 
    </div> 
</a> 

正如我的理解是(很可能是錯誤的,雖然笑)我應該創建這個元素在我的腳本中的觀點:

App.MyView = Ember.View.extend({ 
    tagName: 'a', 
    attributeBindings: ['href', 'data-imgone', 'data-imgtwo', 'data-title', 'data-description'], 
    href: 'http://example.com', 
    'data-imgone': "public/images/firstimg.jpg", 
    'data-imgtwo': "public/images/secondimg.jpg", 
    data-title="someTitle", 
    data-description="someDescription" 
}); 

那麼我應該叫myView與視圖助手:

{{#view 'App.MyView}} 
    <div> 
     <!-- some stuff --> 
    </div> 
{{/view}} 

這不起作用,元素不會呈現。請告訴我我做錯了什麼。我是否完全誤解了觀點和屬性綁定? 也請如果任何人有任何提示/策略的任務,如我的,請分享他們!

回答

1

您不需要單引號來指定要渲染的視圖。這應該就足夠了:

{{#view App.SomeView}}Link Text{{/view}} 

您也不需要在類中聲明數據屬性的引號。數據屬性可以被映射是這樣的:

App.SomeView = Em.View.extend({ 

    tagName: 'a', 
    attributeBindings: ['href', 'dataImgone:data-imgone'], 

    href: 'http://emberjs.com', 
    dataImgone: "public/images/firstimg.jpg", 
}); 

(見jsbin

注意,在attributeBindings,我傳遞的功能/特性饋送隨後的屬性由:attributename在這種情況下是data-imgone,作爲['dataImgone:data-imgone']

+0

感謝您的快速回復! – mcabe 2014-09-05 07:46:01

+0

只需最後一條評論,儘可能使用組件而不是視圖 – MilkyWayJoe 2014-09-05 17:55:26

+0

因此,如果我明白http://discuss.emberjs.com/t/whats-the-difference-between-ember-helpers-components-and-views/ 2201權利:意見不再是必要的? – mcabe 2014-09-06 23:16:22

相關問題