2017-06-29 21 views
0

マイテンプレートは次のとおりです。準備多くのデータをレンダリングするためのVue.jsがレンダリングされませんテーブル

 <tbody id="deliveries-table"> 
     <tr v-for="item in deliveries"> 
      <td class="table-view-item__col"></td> 
      <td class="table-view-item__col" v-bind:class="{ table-view-item__col--extra-status: item.exclamation }"></td> 
      <td class="table-view-item__col">{{item.number}}</td> 
      <td class="table-view-item__col"><a href="{{item.sender_profile_url}}">{{item.sender_full_name}}</a></td> 
      <td class="table-view-item__col" v-if="item.courier_profile_url"><a href="{{item.courier_profile_url}}">{{item.courier_full_name}}</a></td> 
      <td class="table-view-item__col" v-if="item.delivery_provider_url"><a href="{{item.delivery_provider_url}}">{{item.delivery_provider_name}}</a></td> 
      <td class="table-view-item__col"> 
       <span style="font-weight: 900">{{item.get_status_display}}</span><br> 
       <span>{{item.date_state_updated}}</span> 
      </td> 
      </tr> 
     </tbody> 

私のjavascriptのコードは次のとおりです。

var monitorActiveDeliveries = new ActiveDeliveries(); 
monitorActiveDeliveries.fillTable(allDeliveries); 
class ActiveDeliveries { 
    constructor() { 
    this.table = new Vue({ 
     el: '#deliveries-table', 
     data: { 
     deliveries: [] 
     } 
    }); 
    } 
    fillTable (d) { 
    this.table.deliveries = d; 
    } 
} 

しかし、スクリプトの後の任意のTBODYにレンダリングを開始し、私はHTMLの空の場所を持っています。 どこが間違っていますか?あなたは<table>タグにあなたのVueのアプリをインスタンス化することができますが、

+0

あなたは、あなたの 'fillTable()'メソッドが呼び出されます確信しています''運送物 'には実際にいくつかのレコードが含まれていますか? JSコンソールにエラーが表示されますか? – emanek

+0

おそらく 'd'はあなたが期待するものではありません。あなたは 'd'が渡されるのを確認しましたか? – dfsq

+0

はい、allDeliveriesには多くのデータがあり、このデータはd変数に正しく渡されます(console.logに表示されます) – ivan

答えて

0

はまず、通常、あなただけsingle Vue instance on the whole pageをしたいので、一つのメインのdiv/bodyタグにVueのインスタンスを作成した方がよいかもしれません。

第2に、あなたのコードがうまくいくと思います(私はあなたの配送オブジェクトがどのように見えるかはわかりませんが)。fillTable()メソッドがおそらく呼び出されていない、つまり配送が空です。

私はあなたのコードに基づいて、この実施例を作った:http://jsfiddle.net/wmh29mds/

0

人生はそれはそうよりも簡単です。
私はこのディレクティブに間違いだ:私はちょうど次のバリアントが働いている、クラス名に単一のクォータを忘れてしまった

v-bind:class="{ table-view-item__col--extra-status: item.exclamation }" 

を:

v-bind:class="{ 'table-view-item__col--extra-status': item.exclamation }" 
関連する問題