タイトルの通りです。ng-initを使った、bindingされた値のviewからcontrollerへの渡し方について苦戦しているので質問させていただきました。

1つのshopの中にn個のitem_listがあり、そのなかに紐付く形で複数のitemが格納されているという前提です。

shop(1) -> item_list(n) -> item(n)

このような状況のとき、new_itemの追加フォームからitem_listに紐付いた新しいitemを追加しようとしているのですが、追加しようとしているitem_listのidの、controllerへの渡し方に悩んでいます...

そのまま実行しようとすると、ng-init時にまだ{{item_list.id}}に値が格納されていないため(合ってるか不安ですが)、undefinedとして渡されてしまいます。

bindingされた値をcontrollerに渡すにはng-initでは不可能なのでしょうか。また、その他にbestな方法がありましたらこの機会に教えていただきたいと思っています。どうかよろしくお願いいたします。

ul
  li ng-repeat="item_list in shop.item_lists"
    span item_list.id -> {{item_list.id}}
    ul
      li ng-repeat="item in item_list.items"
        span item.id -> {{item.id}}
        input type="submit" value="削除" ng-click="deleteItem(item)"

      form id="new_item" ng-submit="addItem(itemBody, itemListId)"
        input type="text" id="itemBody" ng-model="itemBody" ng-init="itemListId={{item_list.id}}"
        input type="submit" value="追加({{item_list.id}})"

-

angular.module('angularApp').controller "ShopController", ($scope) ->
  $scope.addItem = (itemBody, itemListId) ->
    alert(itemBody)
    alert(itemListId)