1

我是 ember.js 的新手,这似乎很有趣,但很难/难以学习,因为有很多方法可以解决编程问题。

我尝试编写一个非常简单的应用程序,但不知道如何...

该应用程序在表格顶部显示所有具有从 json 文件(本地测试)接收到的 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;
    });
  }
});

索引.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(...),而是使用 vanilla pushObject(...)

所以试着改变每一次push出现pushObject

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

希望能帮助到你。

问候亚历克斯 [来自西班牙] :)

于 2013-09-03T10:15:58.143 回答