我在服务中有一个创建函数,它负责获取输入数据,将其转换为资源,进行保存并将其插入本地缓存。
create = (data, success, error) ->
throw new Error("Unable to create new user, no company id exists") unless $resource_companies.id()
# create the resource
new_model = new resource(data)
# manually add the company id into the payload (TODO: company id should be inferred from the URL)
new_model.company_id = $resource_companies.id()
# do the save and callbacks
new_model.$save( () ->
list.push(new_model)
success.call(@) if success?
, error)
我的问题是监视列表变量的 ng:repeat 没有得到更新。据我所知,这不会在 AngularJS 外部发生,因此它不需要 $scope.$apply() 来保持最新(实际上,如果我尝试触发摘要,我会得到一个已经在进行中的摘要错误)
更奇怪的是,我在其他地方使用了完全相同的模式而没有问题。
我的控制器用来访问列表数组的代码是(这是在服务中)
# refreshes the users in the system
refresh = (cb) -> list = resource.query( () -> cb.call(@) if cb? )
在控制器中:
$scope.users = $resource_users.refresh()