1

我正在Windows Phone 8 上的PhoneGap 项目上工作。我找不到www/在运行时从我的javascript 访问位于文件夹中的资源的解决方案。

我的项目看起来像:

- www/
 `- css/
 `- js/
   `- main.js
   `- data1.json
   `- data2.json
 `- index.html

在我的脚本main.js中,我想加载data1.jsondata2.json

我尝试了许多不起作用的解决方案:

来自 jquery 的 AJAX 函数

this.op = (function() {
  var val = null;
  $.ajax({
    async: false,
    url: 'www/js/data1.json',
    success: function(data) {
      console.log('DATA: ' + data);
      val = JSON.parse(data);
    }
  });
  return val;
})();

来自 PhoneGap 的文件插件示例

fileSystem.root.getFile("js/data1.json", null, gotFileEntry, fail);

我还尝试通过使用列出根文件系统中的目录的函数来检查文件系统,这导致我出现以下情况:

`- /
  `- __Application Settings
  `- Microsoft
    `- Internet Explorer
      `- DCOM
  `- Shared
    `- Media
    `- ShellContent
    `- Transfers

这些文件夹中的任何一个都指向www/或指向我的捆绑包。我找不到*.json动态加载文件的方法。

任何帮助将不胜感激。

4

1 回答 1

2

我的问题是使用亲属路径来访问我的文件。

我正在使用 requireJS 的插件来包含我的文件,但是这个插件为我的文件创建了可笑的亲属路径,例如 app/../js/data1.json.

现在效果很好。

编辑:我更改了插件中路径的计算以删除无用的目录更改,如下所示:

app/../js/data1.json

变成

js/data1.json

只需一个子字符串就足够了,因为每条路径都以相同的方式计算。

于 2013-03-12T10:21:36.150 回答