为了使绑定起作用,您需要使用Ember.Handlebars.registerBoundHelper
Ember.Handlebars.registerBoundHelper('displayAttribute', function(value,options) {
if (typeof(tag) === 'undefined') {
tag = 'div';
}
// TODO: generate output string
return new Handlebars.SafeString(output);
}, dependentKeys);
注意它需要 3 个参数。
@param {String} name
@param {Function} function
@param {String} dependentKeys*
有关更多文档,我建议通过以下链接。
Ember API Docs
Ember Source Code
这是代码文档中的内容
选项示例
与普通车把助手一样,绑定助手可以访问选项
传递给辅助调用。
Ember.Handlebars.registerBoundHelper('repeat', function(value, options) {
var count = options.hash.count;
var a = [];
while(a.length < count) {
a.push(value);
}
return a.join('');
});
这个助手可以在模板中使用如下:
{{repeat text count=3}}
## 带有绑定选项的示例
还支持绑定哈希选项。示例:
{{repeat text countBinding="numRepeats"}}
在本例中,count 将绑定到
上下文中的 numRepeats 属性。如果那个属性
更改,助手将被重新渲染。
## 额外依赖的例子
Ember.Handlebars.registerBoundHelper 方法采用可变长度
第三个参数表示对传入值的额外依赖。
这允许车把助手在这些依赖项发生变化时进行更新。
Ember.Handlebars.registerBoundHelper('capitalizeName', function(value) {
return value.get('name').toUpperCase();
}, 'name');
## 具有多个绑定属性的示例
Ember.Handlebars.registerBoundHelper 支持绑定到
多个属性,例如:
Ember.Handlebars.registerBoundHelper('concatenate', function() {
var values = Array.prototype.slice.call(arguments, 0, -1);
return values.join('||');
});
允许使用模板语法,例如{{concatenate prop1 prop2}} 或
{{concatenate prop1 prop2 prop3}}。如果任何属性发生变化,
助手将重新渲染。请注意,依赖键不能
与多属性助手一起使用,因为它是模棱两可的
依赖键属于哪个属性。
这里以working jsbin 为例