2017-04-26 3 views
1

내 DOM을 삭제한다 ASP.Net MVC에서 일하고 있습니다.)바인딩과 나는 다음과 같은 하위 ViewModels와 다소 복잡한 뷰 모델이

<div class="tab-content transparent"> 
    <div class="tab-pane active" id="tab1"> 
    <div class="row"> 
     <div class="col-md-12 block employment" data-bind="with: self.employment"> 
     <div class="block-title"> 
      <h3>Your <strong>Employment</strong></h3> 
      <hr /> 
     </div> 

     <div class="checkbox"> 
      <label> 
      <input type="checkbox" data-bind="checked: self.isEmployed" /> Are you employed? 
      </label> 
     </div> 

     <!-- other markup taken off --> 

     </div><!-- .col-md-12 .block .employment --> 
    </div><!-- .row --> 
    </div><!-- .tab-pane --> 
</div><!-- .tab-content --> 

을하지만이 작동하지 않습니다 : 내보기에

, 나는이 일을하고있다! Chrome에서 페이지가로드되면 바인드 후 모든 항목이 DOM에서 사라집니다. 여기 스크린 샷이 있습니다!

no content

나는 무엇을 놓치고?

답변

4

당신이 궁극적으로 당신이 with: self.employment를 사용하지 않아야 budgetCalculatorViewModel의 인스턴스에 바인딩하고 가정, 그냥 with: employment해야한다 :

모델에서
<div class="col-md-12 block employment" data-bind="with: employment"> 

, self이, 반면 budgetCalculatorViewModel 인스턴스에 언급했다 바인딩 녹아웃에서 존재하지 않는 인스턴스 내에 self라는 속성을 찾고있을 것입니다. The documentation 노트 것을 :

with 동적으로 추가하거나 관련된 값이 null/undefined 또는

self.employment부터 존재하지 않는 여부에 따라 하위 요소를 제거합니다 바인딩이 제거 모든 내부 요소.

+0

나는'self.employment'를 생각했을 것이고'employment'는 같은 것을 의미했을 것이다. 그러나 나는 틀렸다고 생각한다. :) 고마워, 네 말이 맞았다! 5 분 안에 답으로 표시하겠습니다. – Ciwan