未捕获的ReferenceError:字符未定义

时间:2018-07-18 11:36:31

标签: javascript jquery arrays json html5

我正在用javascript创建一个简单的rest api,我想在初始化时,小部件必须显示所有字符的列表。

这是文件夹结构:

├───book
    └───book.js
├───store
│   └───store.js

这是我的store.js

window.Store = {
  create: function() {
    var self = {};

    var props = {
      name: 'string',
      species: 'string',
      picture: 'string',
      description: 'string'
    };

    var listProps = ['name', 'species'];
    var detailProps = ['name', 'species', 'picture', 'description'];

    var characters = [
      {
        id: makeID(),
        name: 'Ndiefi',
        species: 'Wookie',
        picture: 'store/img/ndiefi.png',
        description: 'A legendary Wookiee warrior and Han Solo’s co-pilot aboard the Millennium Falcon, Chewbacca was part of a core group of Rebels who restored freedom to the galaxy. Known for his short temper and accuracy with a bowcaster, Chewie also has a big heart -- and is unwavering in his loyalty to his friends. He has stuck with Han through years of turmoil that have changed both the galaxy and their lives.',
        _delay: 500
      },
    ];
  }
}

这是index.html

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Character Book</title>
  <!-- 3rd party vendor libraries -->
  <link rel="stylesheet" href="vendor/font-awesome-4.6.3/css/font-awesome.min.css">
  <script src="vendor/jquery-3.1.0.min.js"></script>
  <script src="vendor/underscore-1.8.3.min.js"></script>

  <!-- 1st party internal libraries -->
  <script src="store/store.js"></script>
  <script src="tests/start-test.js"></script>
  <script src="tests/test-book.js"></script>

  <!-- The source of the 'Book' widget -->
  <link href="book/book.css" rel="stylesheet">
  <script src="book/book.js"></script>

  <script>
    $(function() {
      var frame = $('#test-frame');
      var run = $('#test-run');
      var results = $('#test-results');
      var store = Store.create();

      run.click(function() {
        run.prop('disabled', true).text('Running Tests');
        results.removeClass('test-pass test-fail').text('');

        testBook(frame).then(
          function success() {
            run.prop('disabled', false).text('Run Tests');
            results.addClass('test-pass').text('All tests passed');
          },
          function failure(err) {
            run.prop('disabled', false).text('Run Tests');
            results.addClass('test-fail').text('Test failed, see console');
          }
        );
      });

      Book.init(frame, store);
    });
  </script>
</head>
<body>
  <button id="test-run">Run Tests</button>
  <span id="test-results"></span>
  <div id="test-frame">
  </div>
</body>
</html>

这是我尝试过的: books.js

var data = JSON.parse(characters);

data.forEach(characters => {
    console.log(characters.name)
});

因此,当我在浏览器中运行该应用程序时,我看到以下错误:

  

未捕获的ReferenceError:字符未定义

我的代码有什么问题?任何建议或帮助都会有所帮助

0 个答案:

没有答案