前提
AngularJS1.3からOne-time bindingという最初の一回だけバインディングする仕組みが入った。
$resourceはpromiseではなく、先に空配列を返す。
問題
なので、下記のようにngRepeatをOne-time bindingにすると、空配列評価されて、何も表示されなくなったりする。
あ、下のindex()はquery()と読み替えて問題なし。
sample.coffee
angular.module("myApp")
.controller "SampleCtrl", ($scope, Group) ->
$scope.groups = Group.index()
index.html
<div ng-repeat="group in ::groups">
{{::group.name}}
</div>
解決
プロミスで処理しよう。
個人的には$resourceは出来るだけpromiseにしたほうがいいと思う。
sample.coffee
angular.module("myApp")
.controller "SampleCtrl", ($scope, Group) ->
Group.index().$promise.then((groups)->
$scope.groups = groups
)