如何获得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. 观察可绑定属性
- 5. Knockoutjs可观察绑定
- 6. 绑定可观察集合到ListView
- 7. XAML绑定可观察集合到DataGrid
- 8. 绑定到可观察子类集
- 9. 绑定到可观察阵列
- 10. 无法绑定到可观察阵列
- 11. 将可观察集合绑定到GridView
- 12. knockoutjs可观察对象的可观察数组绑定
- 13. 从angularfire 2获取单值可观察
- 14. knockoutjs,通过自定义绑定修改时未观察到可观察阵列
- 15. 获取到观察数据
- 16. KendoUI可观察和点击绑定
- 17. 可观察字典和更新绑定
- 18. Knockout.js - 交叉iframe可观察绑定
- 19. 绑定两个可观察集合
- 20. 数据绑定:值 - 括号 - 可观察
- 21. 当属性不可观察时绑定
- 22. KnockoutJs - 可观察绑定和范围
- 23. ATTR数据绑定可观察不Knockout.js
- 24. 如何从停止可观察到的价值获取价值
- 25. 如何绑定到可观察阵列中的选定项目
- 26. 绑定到选定对象的可观察集合列表?
- 27. 获取可观察数组的值
- 28. 试图从可观察数组中获取特定元素
- 29. NSTableView绑定和观察者
- 30. 过滤器可观察到的由可观察到的
我想你误解了这个问题。我已经有了整个可观察的(参见'knockout.validation.js'中的'validateSync')。我想知道它绑定了什么元素,什么是它的上下文或其他什么来帮助我识别验证器中断的属性。 – SOReader
所以你试图获得绑定到你的可观察对象的实际HTML元素,对吧? – milagvoniduak
呃......或多或少都是。我试图获得任何有助于我在大视野模型中发现失败领域的内容。 – SOReader