0

インデックスからゲームを参照すると、{{#linkTo}}コンテキストが原因でデータが表示されますが、サイトを更新すると、毎回ゲーム名が表示されません。


編集:これはfiddleですが、残念ながら、ゲーム テンプレートからモデルを削除するという ken の提案があっても、フィクスチャ アダプターを使用した fiddle-version は適切に機能します。


/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

ゲーム テンプレートからモデルを削除し、代わりにこれを試してください

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

JSFコードをいじって、問題がどこにあるかを確認します

于 2013-01-24T00:18:13.633 に答える
0

1 つのゲームに対するサーバーからの応答が間違っていました。単一のオブジェクトを含む配列を持っていましたが、オブジェクトコントローラーを使用していたので、応答するだけで修正しました

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