Abd*_*ull 5 handlebars.js ember.js
在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",
});
Run Code Online (Sandbox Code Playgroud)
以下不起作用
//Handlebars
<script type="text/x-handlebars" id="index">
Some property: {{someProperty}}<br/>
</script>
//Javascript
App.IndexController = Ember.ObjectController.extend({
someProperty: function() {
return "yolo"; },
});
Run Code Online (Sandbox Code Playgroud)
使用该方法可以{{bindAttr ...}}深入了解问题:
Uncaught Error: assertion failed: Attributes must be numbers, strings or booleans, not function () ...{
Run Code Online (Sandbox Code Playgroud)
如何从Handlebars模板中访问基于功能的Ember控制器属性?
int*_*xel 13
如果您只需要在访问属性时执行某个函数,那么您可以执行以下操作:
//Javascript
App.IndexController = Ember.ObjectController.extend({
someProperty: function() {
// do your stuff...
return "yolo";
}.property()
});
Run Code Online (Sandbox Code Playgroud)
工作小提琴
希望能帮助到你