让classNameBindings使用带有ember.js的把手中的#view按钮

时间:2012-01-01 03:39:16

标签: javascript ember.js handlebars.js

我正在尝试让一个类出现在一个特定的按钮上,该按钮带有一个基于属性绑定的把手视图。我正在做的事情就像ember.js在他们网站上的Todo应用程序(http://emberjs.com/examples/todos/)而我正试图让“Clear Completed”按钮消失财产的价值。

我有一个jsfiddle显示我要去的地方(http://jsfiddle.net/boushley/XEdNg/)。如果我在#view标签内添加一个className,它会显示正常。但是如果我添加一个clasNameBindings它就不会像我期望的那样工作。我是在做错了还是在这里打破了什么?

亚伦

2 个答案:

答案 0 :(得分:0)

我记得我也遇到了与classNameBindings类似的问题。

请改为:http://guides.sproutcore20.com/using_handlebars.html#binding-class-names-with-bindattr

// Javascript for the view
App.AlertView = SC.View.extend({
  priority: "p4",
  isUrgent: true
});

// Template
<div {{bindAttr class="priority"}}>
  Warning!
</div>

// Emits the following HTML
<div class="p4">
  Warning!
</div>

如果您只想显示/隐藏按钮,请尝试绑定isVisible属性。

isVisibleBinding: 'App.pageController.myProperty'

希望这有帮助。

答案 1 :(得分:0)

我在这里讨论了https://github.com/emberjs/ember.js/issues/322,项目的其中一位人员对此有所帮助,明确了如何在这里执行此操作https://github.com/emberjs/ember.js/issues/322#issuecomment-3332477(http://jsfiddle.net/aNZSD/ )本质上我需要创建一个扩展ButtonView的视图,并将我想要的属性放在这个新视图上。这是它应该工作的方式,我只是没有正确看到这一点。

希望这能让其他人更清楚。