【发布时间】:2015-01-29 18:28:44
【问题描述】:
我有一个$scope.inventories,其中包含我可以选择的库存。
我想在选择某些内容时从inventories 中删除选定的项目,但这不会发生。
代码如下:
$scope.select = (inventory, index) ->
url = '/tasks/select_inventory'
inventory_id = inventory.id
$http(
method: 'POST'
url: url
params: { task_id: task_id, inventory_id: inventory_id }
).success((data, status) ->
$scope.selected_inventories.push inventory
$scope.inventories.splice(index, 1)
return true
).error (data, status) ->
alert('failed')
return
库存模型
angular.module('orwapp').factory 'Inventory', ['$resource', ($resource) ->
Inventory = $resource "/api/v1/inventories/:id",
{ id: "@id" }
return Inventory
]
Rails API 以 json 格式返回 @task。那样行吗?
render json: @task
为什么$scope.inventories.splice(index, 1) 没有按预期工作?
【问题讨论】:
-
据我所知,这段代码应该工作。您是否正确使用 $scope.apply() 来更新范围?如果你
console.log($scope.inventories)紧跟在你.splice之后,你会看到什么? -
@DanielMa,它说:[Resource,Resource,Resource,Resource,$promise:Promise,$resolved:true]0:Resource1:Resource2:Resource3:Resource$promise:Promise$resolved:truelength : 4__proto__: 数组[0]
-
$scope.inventories 是数组还是键控对象?
-
数组,我想。它是这样填充的: $scope.inventories = Inventory.query(task_id: task_id)
标签: javascript angularjs coffeescript