據我所知,$index
在foreach:
綁定中可用,給出對象的索引...我有一個click:
綁定,例如, click:foo
,我需要訪問foo
內$index
。
有沒有辦法?
據我所知,$index
在foreach:
綁定中可用,給出對象的索引...我有一個click:
綁定,例如, click:foo
,我需要訪問foo
內$index
。
有沒有辦法?
是,
<input type="button" data-bind="click: function(data, event) { myClickHandler($index, data, event); }"/>
而不是通過在您綁定的功能它周圍黑客,你只需要獲得綁定上下文。只要您有權訪問與綁定關聯的DOM元素,就可以使用ko.contextFor()
函數獲取綁定上下文及其所有屬性。
您在處理程序中獲得的事件對象使您可以通過target
屬性訪問該節點。使用它獲取上下文。
var viewModel = {
foo: function (data, event) {
var context = ko.contextFor(event.target);
// do stuff with context.$index()
}
};
因爲'$ index'是一個可觀測值,所以我必須使用括號來執行'context。$ index()',因爲可觀察值是敲除http://goo.gl/TIGYV1 – andrewcockerham
這是可悲的,但沒錯。 – jessegavin
我同意點擊,模糊等的默認處理程序應該傳遞更多的信息,而不僅僅是數據和事件。如果上面的快速作弊不適合解決方案,我使用自定義綁定。 – ethermal