0

好的,我一直想知道我正在尝试组合的 Knockout Web 应用程序做错了什么。

这是使用我的 MVC PHP 接口排除 AJAX 服务的代码。

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

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

我有一个 AJAX 服务,它可以工作并获取 account_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”有效。

我错过了什么?实在看不下去了!

非常感谢你的帮助 :)

4

1 回答 1

0

好吧,我已经解决了我的问题 :) 感谢这篇文章(来自 Irakli Nadareishvili)。

我的问题肯定是通过 AJAX 检索的数据的加载方法。使用下划线首先加载货币和帐户,并且仅在加载所有内容时才加载过滤帐户,因为我需要完整的帐户列表。

这是最终的和清理过的代码,以防有人对同样的问题感兴趣或偶然发现。

祝大家编码愉快!

于 2013-06-27T20:23:31.307 回答