如何使用CoffeeScript加载和使用静态JSON文件?

时间:2014-06-19 23:55:37

标签: javascript json coffeescript

我已经得到了一些使用" requirejs"但我无法使其工作。我是CoffeeScript的新手,也是JavaScript的新手。

我的JSON文件(或更准确地说是包含JSON字符串的js文件)如下所示:

define(function(require)
{
  return 
  {
    "name": "Joe",
    "age": 30
  }
});

我的app.coffee有:

requirejs.config
  paths:
    text: "<path to requirejs-text>"
    json_path: "<path to json file>"

我的main.coffee有:

define(require) ->
  ko = require 'knockout'
  $ = require 'jquery'
  jsonObj = require 'json_path'

  class Main_App
    constructor ->
      @age = ko.observable jsonObj.age

我在生成的JavaScript中收到以下错误:

  

Uncaught SyntaxError:意外的令牌:

这是在抱怨行中的冒号:

  

&#34; name&#34;:&#34; Joe&#34;,

很明显,我的JSON字符串周围的javascript包装器结构不正确。我想读一个&#34; data.json&#34;直接提交文件,但它正在寻找一个&#34; .js&#34;文件。我被告知我需要将JSON字符串包装在javascript&#34; define(function(require)&#34;中,但我似乎无法找到如何格式化它的帮助。任何人都能得到我脱胶? 谢谢!

1 个答案:

答案 0 :(得分:1)

JavaScript的自动分号插入在这里似乎很有罪。

写作时

define(function(require)
{
  return // a ; is added here. 
  {
    "name": "Joe",
    "age": 30
  }
});

在return语句后面添加了一个分号,所以函数返回undefined而不是你的对象。

请尝试这样:

define(function(require)
{
  return {
    "name": "Joe",
    "age": 30
  };
});