2015-10-14 44 views
1

我已經編寫了下面的代碼來從HTML元素中獲取Knockout視圖模型observable,但是我想知道是否有更好的方法在不知道observable的名字的情況下做到這一點?從Knockout中的元素獲取觀察值

var dataBinding = $(element).data('bind'); 
var observableName = dataBinding.substr(dataBinding.indexOf('value:')+6); 
observableName = observableName.substr(0, observableName.indexOf('(')).trim(); 
var observable = ko.dataFor(element)[observableName]; 
return observable; 
+0

你能解釋你的用例嗎?你爲什麼試圖獲得可觀察性,並從什麼代碼? –

回答

1

似乎是一種更直接的方法:
http://jsfiddle.net/rniemeyer/CajFz/(小提琴被擊倒創建者創建)

注意

var name1Data = ko.utils.unwrapObservable(ko.utils.domData.get(document.getElementById("name1"), "ko_data")); 

ko.utils.domData.get調用做你要找的內容對於

+0

該示例要求綁定設置「ko_data」值。所以這通常不適用於綁定。 –