2015-12-14 33 views
1

這就是我們如何將Url()模型輸入綁定到knockout UI如何將此元素作爲錨點標記傳遞給javascript函數

[anchor-tag] data-bind="attr: { href: Url()" 

現在我要追加到URL其中來自父元素一些事情,所以我想"this"元素傳遞給js文件。

[anchor-tag] data-bind="attr: { href: myFunction1(Url(), this)" 

myFunction1 = function (url, obj) { 
    return url + "#" + $(obj).parents('li').attr('rankAbs'); 
} 

當我做myFunction1$(obj),我又回到Window對象。

我無法訪問更多的父對象。

+1

您可以使用data-bind =「attr:{href:myFunction1(Url(),$ element)」。 Documentation ref是http://knockoutjs.com/documentation/binding-context.html – TSV

+0

將自己的邏輯打包成自定義綁定或者傳遞模型上層的'rankAbs'可能會更好。 – TSV

回答

1

按照documentation,「$元件」的結合被施加到當前的DOM元素:

這是元件DOM對象(虛擬元件,這將是 評論DOM對象)目前的約束力。如果一個 綁定需要訪問當前元素的一個屬性,這會很有用。例如:

<div id="item1" data-bind="text: $element.id"></div> 

你的情況:

[anchor-tag] data-bind="attr: { href: myFunction1(Url(), $element)" 

如果你的函數,你正在服用父DOM元素,並獲得一些屬性,它可以更好地改變你的視圖模型提供所需信息。

如果父模型可以提供所需的信息,也可以使用「$ parent」或「$ parents」敲除上下文變量。

相關問題