【发布时间】:2013-05-19 00:23:30
【问题描述】:
在 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 控制器属性?
【问题讨论】:
-
您正在寻找计算属性,@intuitivepixel' 下面的答案解释了如何创建基本 CP,更高级的用法检查emberjs.com/guides/object-model/computed-properties
-
这可能是特定于浏览器的问题。 stackoverflow.com/questions/18605866/…