将动态JSON数据绑定到Knockout视图模型是不可能的

时间:2013-06-25 19:31:25

标签: javascript jquery knockout-2.0

好的,我一直想知道我正在尝试整理的Knockout网络应用程序出错了。

Here is the code使用我的MVC PHP界面排除AJAX服务。

my.js =我用于我的应用程序的名称空间声明 data.js =包含用于将数据加载到视图中的静态数据(leftPanel.php) appViewModel.js =调用从PHP服务器加载数据的函数并声明视图模型。

所以,基本上,这是问题所在:

我有一个AJAX服务可以运行并获取accounts_JSON.txt和currency_JSON.txt中显示的数据。 JSON格式正确,在文本文件中,我只添加了返回以便于阅读。

在appViewModel.js中,“getCurrencies”和“getAccounts”方法被调用并正常工作:遍历JSON数据并将其放入指定的数组中。

然后,在appViewModel.js的末尾,我每一步登录Chrome控制台,因为我无法找到为什么会记录“my.app.data.currencies”和“my.app.data.accounts”当它们不是时为空(screenshot_chrome_console.png)。

这些数组在ko.applyBiddings之前填充,所以如果我使用“my.app.data.currencies”和“my.app.data.accounts”来填充视图,它应该可以工作,但它不会。只有静态数据“my.app.leftPanel.currencies.list”和“my.app.leftPanel.accounts.list”才有效。

我错过了什么?我真的看不到!

非常感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

好吧,我已经解决了我的问题:)感谢this post(来自Irakli Nadareishvili)。

我的问题绝对是通过AJAX检索的数据的加载方法。使用Underscore首先加载货币和帐户,并且仅在加载所有货币时加载filteredAccounts,因为我需要完整的帐户列表。

以下是final and cleaned-up code以防任何人对同一问题感兴趣或偶然发现。

快乐编码给所有人!