2017-11-16 8 views
0

녹아웃 체크 박스가 있는데 체크되어 있으면 체크 표시가 거짓으로 표시됩니다.넉 아웃 체크 박스 항상 거짓

<div class="managers" data-bind="foreach: managers"> 
    <div class="row"> 
     <div class="col-sm-12"> 
      <div class="checkbox col-xs-12" data-bind="visible: isVerified == false && postalMessage != '' && postalMessage != null"> 
       <label> 
        <input type="checkbox" data-bind="attr: { checked: isCorrect, name: 'Personnels[' + $index() + '].IsCorrect' }"> <b>@AddressResource.IsCorrect</b> 
       </label> 
     </div> 
    </div> 
</div> <!-- .row --> 

자바 스크립트 : 당신은 실제로 녹아웃 바인딩을 확인 사용하지 않는

function Personnel(personnelId, firstName, middleName, lastName, primaryPhone, primaryPhoneExtension, secondaryPhone, secondaryPhoneExtension, fax, faxExtension, primaryEmail, secondaryEmail, postalAddress, city, state, zip, isVerified, isCorrect, postalMessage) { 
     var self = this; 
     self.personnelId = personnelId; 
     self.firstName = firstName; 
     self.middleName = middleName; 
     self.lastName = lastName; 
     self.primaryPhone = primaryPhone; 
     self.primaryPhoneExtension = primaryPhoneExtension; 
     self.secondaryPhone = secondaryPhone; 
     self.secondaryPhoneExtension = secondaryPhoneExtension; 
     self.fax = fax; 
     self.faxExtension = faxExtension; 
     self.primaryEmail = primaryEmail; 
     self.secondaryEmail = secondaryEmail; 
     self.postalAddress = postalAddress; 
     self.city = city; 
     self.state = state; 
     self.zip = zip; 
     self.isVerified = isVerified; 
     self.isCorrect = ko.observable(isCorrect); 
     self.postalMessage = postalMessage; 
    } 

    function KOViewModel() { 
     var self = this; 

     self.states = ko.observableArray(); 

     var modelStates = mStates; 

     for (var i = 0; i < modelStates.length; i++) { 
      var state = modelStates[i]; 

      self.states.push({ 
       id: state.Value, 
       state: state.Text 
      }); 
     } 

     self.managers = ko.observableArray(); 
     var modelManagers = mManagers; 

     if (modelManagers.length === 0) { 
      self.managers.push(new Personnel(0, "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "")); 
     } else { 
      for (var x = 0; x < modelManagers.length; x++) { 
       var personnel = modelManagers[x]; 
       self.managers.push(new Personnel(personnel.PersonnelId, personnel.FirstName, personnel.MiddleName, personnel.LastName, personnel.PrimaryPhone, personnel.PrimaryPhoneExtension, personnel.SecondaryPhone, personnel.SecondaryPhoneExtension, personnel.Fax, personnel.FaxExtension, personnel.PrimaryEmail, personnel.SecondaryEmail, personnel.PostalAddress, personnel.City, personnel.State, personnel.Zip5, personnel.IsVerified, personnel.IsCorrect, personnel.PostalMessage)); 
      } 
     } 

     self.addPersonnel = function() { 
      self.managers.push(new Personnel(0, "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "")); 
     }; 
    } 

답변

1

어떤 도움 보기를 감상 할 수있다. 아마 모든 올바른 이벤트 후크가없는 'checked'속성으로 attr 바인딩을 사용하고 있습니다. attr 바인딩의 매개 변수 밖에서 검사 된 부분을 자체 바인딩으로 이동하면됩니다.

data-bind="attr: { checked: isCorrect, ... 
//becomes 
data-bind="checked: isCorrect, attr: { ... 
+0

'Personnels [1] .IsCorrect : on'으로 게시되었습니다. 그것이 사실로 게시 할 수있는 방법이 있습니까? – Andrew

+0

Nevermind, added value = "true"이제 작동 중입니다. 고맙습니다! – Andrew