Kendo绑定属性与字符串和变量

时间:2013-10-11 19:27:32

标签: javascript kendo-ui

是否可以执行以下操作:

<span data-bind="attr: { id: 'nav-' + id }"></span>

我在html中的几个地方使用'id',所以我需要为它们添加前缀,但这会引发'意外字符串'错误。有没有办法做这样的事情,还是我必须在视图模型中应用前缀?

1 个答案:

答案 0 :(得分:3)

您无法在数据绑定定义中连接字符串。 您需要在视图模型中应用它,例如通过在视图模型中使用函数:

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/