2012-05-29 5 views
0

JQuery를 사용하여 클래스를 할당하고 비활성화하는 대신 맞춤 바인딩 내에서 disabled 및 css를 바인딩하고 싶습니다. 당신은하지 않고 사용자 지정 바인딩 내에서이 작업을 수행 할 수 $(element).attr('disabled', true).addClass('disabled');knockout.js 및 맞춤 바인딩 사용 안함

data_bind="enabled: classroomId(), css: { 'disabled' : !classroomId() }" 


data_bind="disable: { !classroomId() } 

ko.bindingHandlers.disable = { 
     update: function (element, valueAccessor) { 
      var disabled = ko.utils.unwrapObservable(valueAccessor()); 


       // Disable and Add Class to Button or Anchor Tag 

     } 
    }; 

답변

2

녹아웃 지금이 들어있는 disable 그 거울 활성화 한, 당신은 jQuery를 사용하거나 기존의 CSS와 장애인 바인딩 (fiddle)를 호출 할 수 있습니다 바인딩 :

ko.bindingHandlers.myDisabled = { 
    update: function(element, valueAccessor) { 
     var value = ko.utils.unwrapObservable(valueAccessor()); 
     ko.bindingHandlers.css.update(element, function() {return { disabled: value }; }); 
     ko.bindingHandlers.disable.update(element, valueAccessor); 
    } 
}; 

HTML : 결코의

<input type="text" data-bind="value: name, myDisabled: !enabled()"/> 
+0

겠습니까, 당신은 그런 기본 사용자 정의 바인딩에 액세스 할 수 있습니다 감사를 알고 있었다! –