2017-07-14 109 views
0

我正在使用Kendo MVVM。這ApisTemplate被稱爲遠程,它打開。問題出現在「PaxPreferenceTemplate」模板中。有2個源綁定。只有第一部作品即細分。我不知道爲什麼。即使你使用Kendo MVVM在同一個遠程模板中綁定2個源碼

<label data-bind:"text: Segment.SegmentDetailsToDisplayPricing" ></label> 

仍然會導致相同的結果。如果我評論

<div data-bind="source: Segment"></div> 

然後二號線工程 請告訴什麼是正確的做法

注:所有下面的代碼是在一個文件中。

<script id="ApisTemplate" type="text/x-kendo-template" class="KendoExtTemplate"> 

    <div> 
     <div data-bind="source: ApisVMList.PaxPreferenceBySegment" data-template="PaxPreferenceTemplate"></div> 

     <div style="text-align:center;"> 
      <button type="button" id="btnIssueTicket" onclick="SaveIssueTicket(this)" class="k-button k-primary Apis_submit " style="width: 100px; height: 25px; margin-right: 5px;"> 
       <i class="fa fa-floppy-o fa-inverse" aria-hidden="true"></i> Save 
      </button> 

      <button type="button" class="k-button " onclick="CloseApisWindow(this)" style="width: 100px; height: 25px;"><i class="fa fa-ban"></i> Cancel</button> 
     </div> 
    </div> 
</script> 


<script id="PaxPreferenceTemplate" type="text/x-kendo-template" class="KendoExtTemplate"> 

    <div data-bind="source: Segment" data-template="SegmentTemplate"></div> 

    <div data-bind="source: PaxInfo" data-template="PaxInfoTemplate"></div> 

</script> 

<script id="SegmentTemplate" type="text/x-kendo-template" class="KendoExtTemplate"> 
    <label data-bind="text: SegmentDetailsToDisplayPricing"></label> 
</script> 

<script id="PaxInfoTemplate" type="text/x-kendo-template" class="KendoExtTemplate"> 
    <div> 
     <label data-bind="text: Pax.PersonName"></label> 
     <input data-role="dropdownlist" 
       data-text-field="PassportNumber" 
       data-value-field="PassportNumberID" 
       data-bind="source: PossiblePassports" /> 

     <input data-role="dropdownlist" 
       data-text-field="FrequentFlyernumber" 
       data-value-field="FrequentFlyernumberID" 
       data-bind="source: PossibleFrequentFlyers" /> 
    </div> 



</script> 

回答

1

我認爲你必須劃分你的模板,因爲你有兩個不同類型的列表和單個項目。

<script id="ApisTemplate" type="text/x-kendo-template" class="KendoExtTemplate"> 

    <div> 
     <div data-bind="source: ApisVMList.PaxPreferenceBySegment" data-template="PaxPreferenceTemplate"></div> 
<div data-bind="source: ApisVMList.PaxPreferenceBySegment" data-template="PaxPreferenceTemplate_Second"></div> 

     <div style="text-align:center;"> 
      <button type="button" id="btnIssueTicket" onclick="SaveIssueTicket(this)" class="k-button k-primary Apis_submit " style="width: 100px; height: 25px; margin-right: 5px;"> 
       <i class="fa fa-floppy-o fa-inverse" aria-hidden="true"></i> Save 
      </button> 
      <button type="button" class="k-button " onclick="CloseApisWindow(this)" style="width: 100px; height: 25px;"><i class="fa fa-ban"></i> Cancel</button> 
     </div> 
    </div> 
</script> 

<script id="PaxPreferenceTemplate" type="text/x-kendo-template" class="KendoExtTemplate"> 
    <div data-bind="source: Segment" data-template="SegmentTemplate"></div> 
</script> 
<script id="PaxPreferenceTemplate_Second" type="text/x-kendo-template" class="KendoExtTemplate"> 
    <div data-bind="source: PaxInfo" data-template="PaxInfoTemplate"></div> 
</script> 
+0

傳遞給PaxPreferenceTemplate的對象源是Array的集合,因此我需要模板。我不能刪除PaxPreferenceTamplate並將代碼放在父html中。自那時以來渲染不會知道PaxPreferenceBySegment [0]應該呈現或[1]等 對象是這種結構的: https://jsfiddle.net/r9Lahs3f/ –

+0

我已改變響應,並分成兩模板。 – Ciccio

+0

Ciccio,當數據源'ApisVMList.PaxPreferenceBySegment'有2個項目時有問題。 jsfiddle.net/9wduzvr1/2/ –