1

私は非常に興味深いと思われるember.jsを初めて使用しますが、プログラミングの問題を解決するには非常に多くの方法があるため、習得が難しい/困難です。

非常に単純なアプリをコーディングしようとしていますが、方法がわかりません...

アプリは、json ファイル (testin local) から受け取った ID を持つすべての顧客を表の上部に表示し、ID をクリックすると、顧客に詳細情報を受け取るための json 要求が表示されます。

問題は、詳細データを受け取ったが、概要テンプレートの下のテンプレートに表示できないことです...

だれか助けてくれませんか…!?

クリスチャン[ドイツから]に挨拶します


ここに私が今までに得たいくつかのコードスニペットがあります...

APP.JS

App.Search = Ember.Object.extend();

App.Search.reopenClass({  
  all: function() {
    // console.log('Search.reopenClass all');
    return $.getJSON("json/kunden_suchen.json").then(function(response) {
      var items = [];
      response.Konto.forEach(function(child) {
        // console.log(child);
        var item = new App.item();
        item.set('content', child);
        item.set('nr', child.nr);
        item.set('name1', child.name1);
        item.set('name2', child.name2);
        item.set('plz', child.anschrift.plz);
        item.set('anschrift', child.anschrift);
        items.push(item);
      });
      return items;
    });
  }
});

App.SearchRoute = Ember.Route.extend({
  model: function() {
    // console.log('SearchRoute model');
    return App.Search.all();
  },
  events: {    
    details: function() {
      console.log('SearchRoute detail');
      return App.Details.all();
    }
  } 
});

App.Details= Ember.Object.extend();

App.Details.reopenClass({  
  all: function() {
    // console.log('Search.reopenClass all');
    // return $.getJSON("json/kunden_suchen.json").then(function(response) {
      return $.getJSON("json/customer.json").then(function(response) {
      var items = [];
      response.Konto.forEach(function(child) {
        console.log(child);
        var item = new App.item();
        item.set('content', child);
        item.set('nr', child.nr);
        items.push(item);
      });
      return items;
    });
  }
});

index.html

  <script type="text/x-handlebars" data-template-name="items">
    <div style="width: 80%; margin: auto;">
    <table class="table table-bordered table-hover">
      <thead>
        <tr>            
          <th>Name1</th>            
          <th>nr</th>            
        </tr>
      </thead>
      <tbody>
        {{#each item in model}}
          <tr class="info">
            <td> {{ item.content.name1 }} </td>
            <td> {{ item.content.id}} </td>
        {{/each}}
      </tbody>
    </table>
    </div>
  </script>
4

1 に答える 1

0

ember の配列は拡張されています (たとえば、プロトタイプです)。そのため、配列がバインドを認識し、データが非同期に到着したときにテンプレートをライブ更新するには、vanilla を使用するだけでなく、代わりに使用できpush(...)ますpushObject(...)

pushしたがって、出現するすべてのtoを変更してみてくださいpushObject

...
items.pushObject(item);
...

それが役に立てば幸い。

[スペインから] アレックスに挨拶します :)

于 2013-09-03T10:15:58.143 に答える