在Ember Handlebars模板中,可以使用
访问控制器(基于字符串/布尔/数字)属性{{someProperty}}
<someHtmlTag {{bindAttr someHtmlTagAttribute="someProperty" />
构建
这似乎不适用于基于功能的控制器属性。
以下作品
//Handlebars
<script type="text/x-handlebars" id="index">
Some property: {{someProperty}}<br/>
</script>
//Javascript
App.IndexController = Ember.ObjectController.extend({
someProperty: "yolo",
});
以下内容不起作用
//Handlebars
<script type="text/x-handlebars" id="index">
Some property: {{someProperty}}<br/>
</script>
//Javascript
App.IndexController = Ember.ObjectController.extend({
someProperty: function() {
return "yolo"; },
});
使用{{bindAttr ...}}
可以深入了解问题:
Uncaught Error: assertion failed: Attributes must be numbers, strings or booleans, not function () ...{
如何从Handlebars模板中访问基于功能的Ember控制器属性?
答案 0 :(得分:13)
如果您只需要在访问属性时执行某个函数,那么您可以执行以下操作:
//Javascript
App.IndexController = Ember.ObjectController.extend({
someProperty: function() {
// do your stuff...
return "yolo";
}.property()
});
工作fiddle
希望有所帮助