タイトルの通りです。お世話になります。
1つのshopの中にn個のitem_listがあり、そのなかに紐付く形で複数のitemが格納されているという前提です。
shop(1) -> item_list(n) -> item(n)
このようなネストされた構成のとき、itemが追加されたら同時にitem_listも追加する仕様を考えています。
なお、item_listの上限は5件で、ng-repeat の $last の値がtrueのとき、自動的にitem_listが追加されるところまでは実装ができていますが、
自動的に追加されたitem_listの中のnew_itemフォームから新しいitemの追加ができない状況です。
$scope.shop.item_lists[3].items.push(item) で指定している item_lists[3] が再読み込みできていないのが原因だと思い、
以下などを参考に試行錯誤しているのですが、push後にng-repeatをrefreshする方法が思いつかず詰まっています。
どうかよろしくお願いいたします...
AngularJS not refreshing ngRepeat when updating array
lang
1[edit.html.slim] 2ul 3 li ng-repeat="item_list in shop.item_lists" 4 ul 5 li ng-repeat="item in item_list.items" 6 span ng-bind="item.name" 7 input type="submit" value="削除" ng-click="deleteItem(item, item_list)" 8 9 form id="new_item" ng-submit="addItem(item, item_list, $index, $last)" 10 input type="text" ng-model="item_list.item.name" 11 input type="submit" value="追加"
= = =
lang
1[controller.coffee] 2switch item_list_number 3 when 0 4 $scope.shop.item_lists[0].items.push(item) 5 when 1 6 $scope.shop.item_lists[1].items.push(item) 7 when 2 8 $scope.shop.item_lists[2].items.push(item) 9 ... 10 when 5 11 $scope.shop.item_lists[5].items.push(item) 12 13# 追加されたのが最後の要素&item_listが上限に達していない場合 14if (is_last == true && item_list_number < 5) 15 $scope.shop.item_lists.push(item_list)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2015/07/01 14:42 編集
2015/07/01 14:54
2015/07/01 14:56
退会済みユーザー
2015/07/01 15:25 編集
退会済みユーザー
2015/07/01 15:22
2015/07/01 23:28
退会済みユーザー
2015/07/02 02:00