4

subCategories の配列が宣言されているモデル「トランザクション」があります。この配列には、transactionController のメソッド「add_subcagtegory」が呼び出されるたびに、トランザクション タイプ オブジェクトが取り込まれます。ネストされたループ (#collection) でサブカテゴリをレンダリングしようとすると、完了しません。配列コントローラー オブジェクトをレンダリングしている外側のループ (#each) は正常に動作しています。subCategories 配列をレンダリングする方法を誰か教えてもらえますか?

app.js

App.transaction=Em.Object.extend({
  account:null,
  date:null,
  source:null,
  description:null,
  category:null,
  flag_for_later:null,
  amount:null,
  category_id:null,
  record_index:null,
  isSubCategory:null,
  subCategories:[]
});

App.transactionsController = Em.ArrayController.create({
  content: [],
  add_subcategory: function(param){
     var records=this.toArray();
     if (typeof(records[param.value -1].subCategories) === "undefined") {
       records[param.value -1].subCategories = new Array();
     }


      var category=App.transaction.create({
        account:"//",
        date:"//",
        source:"//",
        description:"//",
        category:" ",
        flag_for_later:" ",
        amount:null,
        category_id:records[param.value -1].subCategories.length + 1,
        isSubCategory:true
      });

     records[param.value -1].subCategories.push(category);

     App.transactionsController.set('content',[]);
     App.transactionsController.pushObjects(records);

     App.array.push(obj1);
    }
});

そしてテンプレート:

<table>
    {{#each App.transactionsController}}
      <tr>
        <td>{{account}}</td>
        <td>{{date}}</td>
        <td>{{source}}</td>
        <td>{{view App.TextField class="span12" style="border:0px;"  objcount=record_index fieldname="description" value=description}}</td>
        <td>{{view App.TextField class="span12" style="border:0px;" objcount=record_index fieldname="category" value=category }}</td>
        <td><button onclick="App.transactionsController.add_subcategory(this);" value="{{unbound record_index}}">+</button></td>
        <td>{{view App.TextField class="span6" style="border:0px;" objcount=record_index fieldname="flag_for_later" value=flag_for_later }}</td>
        <td>{{amount}}</td>
      </tr>
      {{#collection contentBinding="App.transactionsController.subCategories"}}
        <b>content does,nt not render</b>
      {{/collection}}
    {{/each}}
</table>

コレクションの下のテンプレートで、subCategories にアクセスするにはどうすればよいですか?

http://jsfiddle.net/KbN47/29/

4

2 に答える 2

2

{{collection}} ヘルパーのコンテンツを this.subcategories (thisコンテキスト内のトランザクション) にバインドするだけで機能しますか?

{{#collection contentBinding="this.subcategories"}}

アップデート

ここに jsfiddle があります: http://jsfiddle.net/Sly7/tRbZC/

ember のバージョンが最新のものであることに注意してください。0.9.5 は非常に古いため、更新する必要があります。私は<select>動作を見ていませんでしたが、うまくいかない場合は、動作させるためのすべての鍵を手に入れたと思います:)

于 2012-08-03T09:37:10.473 に答える
0

ember バージョンを最新から 1.0 より前に変更し、+ をクリックすると機能します。

http://jsfiddle.net/y3YX9/

于 2012-08-31T11:12:29.857 に答える