2014-09-04 39 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

相关问题