2013-10-11 4 views
2

같은 것을 할 것이 가능 : 나는 HTML에서 몇 군데에서 '아이디'를 사용검도 바인딩 문자열 속성과 변수

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

을, 그래서 나는 그들을 접두사 필요하지만, 이것은을 던졌습니다 'unexpected string'오류가 발생했습니다. 이런 식으로 할 수있는 방법이 있습니까? 아니면 접두사를 뷰 모델에 적용해야합니까?

답변

3

데이터 바인딩 정의 내에서 문자열을 연결할 수 없습니다. 뷰 모델에서 적용해야합니다. 뷰 모델의 기능을 사용하여 :

<span data-bind="attr: { id: getId }"> using method in the view model </span> 

을 또는 당신은 다음과 같이 정의 바인딩을 등록 :

var prefix = "nav-"; 

var viewModel = kendo.observable({ 
    id: "postfix", 
    getId: function() { 
     return prefix + this.get("id"); 
    } 
}); 

은 다음과 같이 사용

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> 

Working examp les : http://jsfiddle.net/lhoeppner/CEaXr/

관련 문제