0

ここでは、行削除オプション (クロス記号) をクリックしてテーブルから行を削除しようとしています。しかし、それはエラーを投げていますUncaught TypeError: Object 2 has no method 'call'

ここでは、モデルからのデータを次のように表示しています。

<tbody>                           
    {{#each item in model}}
        {{#each item in item.cart_items}}
        <tr>
            <td>{{item.id}}</td>
            <td>{{item.name}}</td>
            <td>{{item.qty}}</td>
            <td>{{item.price}}</td>
            <td>{{item.subtotal}}</td>
            <td><button type="button" {{action 'deleteproduct' item.id}} class="close" aria-hidden="true" >&times;</button></td>
        </tr>   
        {{/each}}
    {{/each}}                                                             
</tbody>

上記フィクスチャの構造は次のとおりです。

Astcart.Application.adapter = Ember.FixtureAdapter.create();

Astcart.Application.FIXTURES = [
    {
        "logged_in": {
            "logged": true,
            "username": "sachin",
            "account_id": "4214"
        },
        "cart_items": [
            {
                "id": "1",
                "name": "Samsung Galaxy Tab 2",
                "qty": "1",
                "price": "1245.12",
                "subtotal": "1245.12"
            },
            {
                "id": "2",
                "name": "Samsung Galaxy Tab 2",
                "qty": "2",
                "price": "1500.00",
                "subtotal": "3000.00"
            },
            {
                "id": "3",
                "name": "Samsung Galaxy Tab 2",
                "qty": "5",
                "price": "100.00",
                "subtotal": "500.00"
            }
        ]           
    }
];

ここで、テーブルから行を削除しようとしています:

deleteproduct: function(productID){
    if (window.confirm("Are you sure you want to delete this record?")) {           
        var result = this.get('model').map(function(application) {
            console.log(JSON.stringify(application.get('cart_items')));
            console.log(JSON.stringify(application.get('cart_items').find(productID)));
            application.get('cart_items').deleteRecord(application.get('cart_items').find(productID));
            application.get('cart_items').commit();
        });
    }
}

ここに完全なコードを投稿しました。 このフィドルを機能させるのを手伝ってくれる人はいますか?

アップデート

ここでコードを更新しました deleteRecord は上記のフィドルで正常に動作していますが、フィクスチャの一部 (ノードの 1 つ) である配列からレコードを削除する方法。

cart_items is an array and node of fixture as explained above.

ここに完全なコードを投稿しました。 このフィドルを機能させるのを手伝ってくれる人はいますか?

4

1 に答える 1