是否可以执行以下操作:
<span data-bind="attr: { id: 'nav-' + id }"></span>
我在 html 的几个地方使用了“id”,所以我需要为它们添加前缀,但这会引发“意外字符串”错误。有什么办法可以做这样的事情还是我必须在视图模型中应用前缀?
是否可以执行以下操作:
<span data-bind="attr: { id: 'nav-' + id }"></span>
我在 html 的几个地方使用了“id”,所以我需要为它们添加前缀,但这会引发“意外字符串”错误。有什么办法可以做这样的事情还是我必须在视图模型中应用前缀?
您不能在数据绑定定义中连接字符串。您需要在视图模型中应用它,例如通过在视图模型中使用函数:
var prefix = "nav-";
var viewModel = kendo.observable({
id: "postfix",
getId: function() {
return prefix + this.get("id");
}
});
然后像这样使用它:
<span data-bind="attr: { id: getId }"> using method in the view model </span>
或者您像这样注册自定义绑定:
var prefix = "nav-";
kendo.data.binders.customId = kendo.data.Binder.extend({
refresh: function () {
var value = this.bindings["customId"].get();
value = prefix + value;
$(this.element).attr("id", value);
}
});
然后像这样使用它:
<span data-bind="customId: id">using custom binding</span>
工作示例:http: //jsfiddle.net/lhoeppner/CEaXr/