promise の関数AngularJS 1.1.5
を返すフロントエンド:バックエンド:ngResource
$then
Rails 3.2
問題:Card.update
AngJS コントローラーの関数内からアクションを呼び出すたびに、success
とerror
応答の両方をログに記録しようとしても応答がありません。Card
$resource は、関数の外部からアクションを呼び出すときに期待どおりに動作しますCard.update
。
Rails 協会
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