2014-02-06 54 views
1

我有一個Kendo ListView使用knockout-kendo.js綁定的相當複雜的模板。它顯示得非常漂亮。我的問題是我需要在模板的某些部分使用可見和點擊綁定,但我無法讓它們工作。以下是我的模板的簡化版本。基本上,deleteButtonVisible確定是否可以看到關閉按鈕,removeComp從數組中刪除項目。如何將數據綁定到Kendo-Knockout列表視圖中的元素?

<div class='template'> 
    <div > 
     <div style='display:inline-block' data-bind='visible: deleteButtonVisible, event: {click: $parent.removeComp}'> 
     <img src='../../../Img/dialog_close.png'></img> 
    </div> 
    <div class='embolden'>#= type#</div><div class='label1'> #= marketArea# </div> 
    <div class='label2'> #= address# </div> 
    <!-- more of the same --> 
</div> 

視圖模型:

function CompViewModel() { 
var self = this; 
    self.compData = ko.observableArray().subscribeTo("compData"); 
    self.template = kendo.template(//template in here); 
    self.removeComp = function (comp) { 
     //do something here 
    } 

}

HTML:

<div class="row" > 
     <div class="col-md-12 centerouter" id="compDiv" > 
      <div class="centerinner" id="compListView" data-bind="kendoListView: {data: compData, template: template}"></div> 

     </div> 
    </div> 

最後,樣本數據:

{ 
     type: "Comparable", 
     marketArea: "", 
     address: "2327 Bristol St", 
     deleteButtonVisible: true 
    }, 

回答

0

請注意,deleteButtonVisible必須是鏈接到視圖的viewModel上的屬性。您現在沒有這樣做。 click元素可以從綁定的外部範圍訪問並移除$ parent.He從視圖模型中獲取該方法。請注意,您所做的每件事都必須出現在視圖模型上以方便訪問。

相關問題