如何獲得data-bind
可觀察值綁定的字符串或DOM節點?我在我的網頁上使用了knockout.validation.js,並且我的一個默認驗證(required
)正在被解僱。我想找出哪一個是它是裏面例如validateSync
@ knockout.validation.js從可觀察到的獲取綁定
1
A
回答
0
過了一會兒,我想出了這樣的事:上名字propertyName
function getPath(source, propertyName /*, value, result, noDescend */) {
var result = arguments[3] || {};
var valueToFind = arguments[2];
var noDescend = arguments[4];
function merge(dst, name, src) {
var result = {};
result[name] = src;
return $.extend(true, dst, result);
}
for (var p in source) {
var value = source[p];
if (p == propertyName) {
if (!valueToFind || source[p]==valueToFind) {
result[p] = source[p];
}
}
else {
if (!noDescend && (typeof value == 'object' || typeof value == 'function')) {
if (ko.isObservable(value)) {
var r = getPath(value, propertyName, valueToFind, result[p], true);
if (Object.keys(r).length > 0) merge(result, p, r);
}
var r = getPath(ko.utils.unwrapObservable(value), propertyName, valueToFind, result[p]);
if (Object.keys(r).length > 0) merge(result, p, r);
}
}
}
return result;
}
這個功能會給你一個對象,它僅包含屬性(儘管它的嵌套級別)。正在搜索的對象是source
。該解決方案基於這樣一個事實,即一個可觀察對象在綁定時具有字段_id
。這裏有一個用例,這個函數很有用。
在一個非平凡形式與結合於一個非平凡視圖模型中的一個字段打破驗證字段。
在
knockout.validation.js
在功能validateSync
放置一個斷點if
聲明的真實路徑內後,通過調用檢查obeservable的ID:observable._id
調用以下命令來獲取所有打破驗證字段:
getPath(ko.dataFor($('<form-selector>')[0]),'_id',<id-of-observable>)
如果有人找到一個更好的解決方案,請與我分享。
0
您可以使用jQuery來獲取數據綁定屬性的實際值
<span data-bind="value: test"> </span>
$(function() {
// this will get you "value: test"
alert($('span').attr('data-bind'));
});
此外,如果你想獲得你綁定的實際可觀察值,可以使用ko.dataFor函數。
ko.dataFor(element) - 返回可用於綁定元素的數據 ko.contextFor(element) - 返回可用於DOM元素的整個綁定上下文。
http://knockoutjs.com/documentation/unobtrusive-event-handling.html
相關問題
- 1. 綁定到可觀察的集合獲取元素onTapp
- 2. Knockout.js計算可觀察不綁定到可觀察數組
- 3. 如何綁定可觀察的觀察到在淘汰賽JS
- 4. Knockoutjs可觀察綁定
- 5. 觀察可綁定屬性
- 6. 無法綁定到可觀察陣列
- 7. 綁定可觀察集合到ListView
- 8. 綁定到可觀察陣列
- 9. 將可觀察集合綁定到GridView
- 10. 綁定到可觀察子類集
- 11. XAML綁定可觀察集合到DataGrid
- 12. knockoutjs可觀察對象的可觀察數組綁定
- 13. 從angularfire 2獲取單值可觀察
- 14. knockoutjs,通過自定義綁定修改時未觀察到可觀察陣列
- 15. 獲取到觀察數據
- 16. KendoUI可觀察和點擊綁定
- 17. 當屬性不可觀察時綁定
- 18. Knockout.js - 交叉iframe可觀察綁定
- 19. 可觀察字典和更新綁定
- 20. 數據綁定:值 - 括號 - 可觀察
- 21. KnockoutJs - 可觀察綁定和範圍
- 22. 綁定兩個可觀察集合
- 23. ATTR數據綁定可觀察不Knockout.js
- 24. 可觀察DataContracts和雙向綁定
- 25. 如何從停止可觀察到的價值獲取價值
- 26. 如何綁定到可觀察陣列中的選定項目
- 27. 綁定到選定對象的可觀察集合列表?
- 28. 獲取可觀察數組的值
- 29. 試圖從可觀察數組中獲取特定元素
- 30. NSTableView綁定和觀察者
我想你誤解了這個問題。我已經有了整個可觀察的(參見'knockout.validation.js'中的'validateSync')。我想知道它綁定了什麼元素,什麼是它的上下文或其他什麼來幫助我識別驗證器中斷的屬性。 – SOReader
所以你試圖獲得綁定到你的可觀察對象的實際HTML元素,對吧? – milagvoniduak
呃......或多或少都是。我試圖獲得任何有助於我在大視野模型中發現失敗領域的內容。 – SOReader