0

如果我从索引浏览到游戏,则会显示数据,因为{{#linkTo}}s 上下文,但如果我正在刷新站点,则每次游戏名称都不会出现。


编辑:这是一个小提琴,但不幸的是,带有夹具适配器的小提琴版本可以正常工作,即使肯建议从游戏模板中删除模型。


/api/games 返回的数据如下:

{
   "games":[
      {
         "id":1,
         "name":"First Game"
      }
   ]
}

以及从 /api/games/1 返回的数据

{
  "game": [
    {
      "id": 1,
      "name": "First Game"
    }
  ]
}
<script type="text/x-handlebars" data-template-name="application">
  {{outlet}}
</script>

<script type="text/x-handlebars" data-template-name="games">
  <ul>{{#each game in controller}}
    <li>{{#linkTo 'game' game}}{{game.name}}{{/linkTo}}</li>
  {{/each}}</ul>
</script>

<script type="text/x-handlebars" data-template-name="game">
  <h1>Name:{{model.name}}</h1>
</script>
<script type="text/javascript">
  App = Ember.Application.create();

  App.Game = DS.Model.extend({
    name: DS.attr('string')
  });

  App.Store = DS.Store.extend({
    revision: 11,
    adapter: DS.RESTAdapter.create({
        namespace: 'api'
    })
  });

  App.GamesController = Ember.ArrayController.extend({
    content: []
  });

  App.GameController = Ember.ObjectController.extend({
    content: null
  });

  App.Router.map(function(match) {
    this.route("games", { path : "/" });
    this.route("game", { path : "/games/:game_id" });
  });

  App.GameRoute = Ember.Route.extend({
    model: function(params) {
        return App.Game.find(params.game_id);
    }
  });

  App.GamesRoute = Ember.Route.extend({
    setupController: function(controller) {
      controller.set('content', App.Game.find());
    }
  });
</script>

有人有想法吗?

4

2 回答 2

0

我的服务器对单个游戏的响应是错误的。我有一个包含单个对象的数组,但我使用了 Object 控制器,所以我只用响应来修复它

{
  "game": {
    "id": 1,
    "name": "First Game"
  }
}
于 2013-01-24T19:37:00.317 回答
0

从你的游戏模板中删除模型,试试这个

<script type="text/x-handlebars" data-template-name="game">
  <h1>Name:{{name}}</h1>
</script>

JSFiddle您的代码以查看问题出在哪里

于 2013-01-24T00:18:13.633 回答