当我对服务器资源中的项目执行删除操作时,它不会删除视图中的项目。
观点:
%ul(class="phrases")
%li(ng-repeat="phrase in phrases")
%p.id {{phrase.id}}
%p.content {{phrase.content}}
%p.author {{phrase.author}}
%button(ng-click="deletePhrase(phrase.id)") Delete ^
服务:
wrmcServices.factory 'Phrase', ($resource) ->
$resource('api/v1/phrases.json',{},
query:
method:'GET'
params:
phraseId:'phrases'
isArray:true
)
wrmcServices.factory 'Phrase', ($resource) ->
$resource('api/v1/phrases/:id.json',{id: "@id"},
update:
method:'PUT'
delete:
method: 'DELETE'
)
控制器:
wrmcControllers.controller 'phrasesCtrl', ($scope, Phrase) ->
$scope.phrases = Phrase.query()
$scope.deletePhrase = (phraseId) ->
Phrase.delete({id: phraseId}, ->
$scope.phrases.splice(phraseId,1)
)
我的临时修复是在deletePhrase函数的末尾放置$ scope.phrases = Phrase.query(),但我不喜欢页面刷新的方式。不应该只是从新视图中删除项目,因为我将其从数组中删除。
答案 0 :(得分:5)
如果$ scope.phrases是一个数组,你应该可以这样做
ng-click="deletePhrase(phrase.id, $index)"
并更改删除方法
$scope.deletePhrase = (phraseId, index) ->
Phrase.delete({id: phraseId}, ->
$scope.phrases.splice(index,1)
)
我不确定语法,因为我不熟悉它。但是你明白了。