前端: AngularJS 1.1.5
,ngResource
返回一个承诺的$then
功能
后端: Rails 3.2
问题:每当我Card.update
从 AngJS 控制器中的函数内部调用操作时,尝试同时记录success
和响应都没有得到error
响应。从函数外部调用操作时,Card
$resource 的行为与预期的一样。Card.update
铁路协会
Deck has_and_belongs_to_many :cards
Card has_and_belongs_to_many :decks
铁路路线
resources :cards do
get '/decks' => 'cards#decks', on: :member
end
Rails 卡控制器“更新”操作
def update
@card = Card.where( id: params[:id] ).first
unless params[:deck_id].nil?
@deck = Deck.where( id: params[:deck_id] ).first
@deck.cards << @card
end
render json: Card.update( params[:id], params[:card] )
end
卡牌资源厂
app.factory "Card", ($resource) ->
$resource "/cards/:id",
id: "@id"
,
index:
method: "GET"
isArray: true
show:
method: "GET"
isArray: false
create:
method: "POST"
update:
method: "PUT"
destroy:
method: "DELETE"
decks:
method: "GET"
isArray: true
url: 'cards/:id/decks'
卡片更新功能(在 AngJS 控制器内部):(成功/错误消息不会记录到控制台)。
$scope.updateCard = ( card_id, old_deck, new_deck ) ->
console.log 'CardCtrl updateCard function'
card_id = parseInt(card_id)
old_deck = parseInt(old_deck)
new_deck = parseInt(new_deck)
Card.update( id: card_id, deck_id: new_deck ).$then (success, error) ->
console.log 'Success'
console.log success
console.log 'Error'
console.log error