由于我不习惯这种编程/数据管理方式,因此很难理解。
我现在要做的就是将通过微风返回的 json 对象传递到 dynatree 或 fancytree 中。
在线存在的示例都假设树将通过“initajax”进行ajax调用,或者需要一些奇怪的复杂自定义绑定处理程序来传递各种对象:
ko.bindingHandlers.dynatree = {
update: function (element, valueAccessor, allBindingsAccessor, viewModel) {
setTimeout(function () {
$(element).dynatree({
noLink: true, // noLink is required to 'unlock' the checkboxes
minExpandLevel: 2
})
// the timeout value shows the correct knockout bindings BEFORE dynatree kicks in.
}, 1000);
}
}
这一切对我来说似乎太复杂了,当然?我已经有了 json 对象,我知道这是有效的。如果我使用敲除“foreach”将其绑定到一些普通的 html,那么所有数据都显示得很好。在我看来,我需要做的就是初始化树 div 并将 json 对象传递给它......只是我不知道该怎么做!
我在这里尝试使用 jsfiddle:http: //jsfiddle.net/Ebram/UhA3m/5/但 chrome 开发人员工具抱怨当自定义绑定处理程序触发时元素没有“dynatree”方法。它传入了一个“ul”元素,这可能是问题所在——当然它应该传入树 div,而不是 ul 元素?
无论如何,如果有人能指出我正确的方向,我将不胜感激。当我使用 John Papa 的 SPA 方法时,我也不确定将任何单独的 js 初始化代码放在哪里,因为底层视图模型不适合我进行 $(#tree).dynatree 初始化类型调用,是吗?我必须承认我还没有意识到这一点。
我想我正在寻找的只是“一旦这个视图的视图模型完成加载并且完成了敲除绑定,初始化 dynatree div 并将这个 json 对象传递给树”如果这有意义的话伪代码?