

タイトルの通りです。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な方法がありましたらこの機会に教えていただきたいと思っています。どうかよろしくお願いいたします。

[code]

    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}}）"
    
[/code]

-
[code]

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


CC BY-SA 3.0
2015-06-25T11:14:18.890
11725
2015-06-29T00:57:54.647
2015-06-29T00:57:54.647
76
10309
question
javascript angularjs
ng-initを使った、bindingされた値のviewからcontrollerへの渡し方について


shopの値が非同期で入っているので無ければ、

[code]

    ng-init="itemListId=item_list.id"
    
[/code]

で値が入るのではないかと思います。

それ以前に、ng-initを消して、addItem(item_list.body,
item_list.id)と直接bind値を入れたほうが良いと思いますが。


CC BY-SA 3.0
2015-06-26T00:57:58.943
11744
2015-06-26T00:57:58.943
2232
11725
answer