2013-10-11 5 views
2

Можно ли сделать что-то вроде:Кендо связывания атрибут со строкой и переменной

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

я использую «идентификатор» в нескольких местах в HTML, так что мне нужно префикс их, но это бросает ошибка «неожиданной строки». Есть ли способ сделать что-то подобное или мне нужно применить префикс в модели представления?

ответ

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> 

Рабочий экзамен les: http://jsfiddle.net/lhoeppner/CEaXr/

Смежные вопросы