0
class BookmarkItemApiController {
static responseFormats = ['json', 'xml']
static allowedMethods = [delete:['POST', 'DELETE'], update:['POST', 'PUT']]
def index() {
render (text:"test")
}
@Transactional
def deleteItem(Bookmark bookmark) {
if (bookmark == null) {
render status: NOT_FOUND
return
}
///not working here ////
def itemid = params.itemid
println " --> itemid -- ${itemid}"
if (params.portfolio) {
itemid.delete()
println ">>> delete portfolio id"
} else if (params.catalogue) {
itemid.delete()
println ">>> delete id"
} else if (params.image) {
itemid.delete()
println ">>> delete image id"
}
//////////////////////////
def item = [:]
item.name = bookmark.name
item.id = bookmark.id
item.delete = true
item.items = []
item.items += bookmark.portfolios?:[]
item.items += bookmark.images?:[]
item.items += bookmark.catalogues?:[]
respond item
}
JS
$('.ac-hns').on('click', '.icn-close-white', function(e) {
e.preventDefault();
deleteBookmarkItem($(this), $(this).parent().data('id'), $(this).parent().data('type'), $(this).parent().attr('data-bookmark-id'));
});
function deleteBookmarkItem(btn, itemID, category, bookmarkID) {
var sendData = {
item: itemID,
// ownerId: userSessionId
};
sendData[category] = itemID;
console.log(sendData)
console.log('?: ' + $.param(sendData));
$.ajax({
url: '/bookmarkItemApi/deleteItem/' + bookmarkID + '?' + $.param(sendData),
type: 'GET',
contentType: 'application/json',
dataType: 'json',
success: function(response) {
//unlink or remove portfolio from bookmark
$('[data-id="' + itemID + '"]').remove();
console.log(response);
},
error: function(error) {
console.log(error);
console.log('fails');
}
});
}
GSP例如
<g:each in="${bookmark.loadCatalogues()}" var="catalogue">
<div class="mb ac-hns" data-id="${catalogue.id}" data-bookmark-id="${bookmark.id}" data-type="catalogue">
<a href="/catalogue/more/${catalogue.id}">
<span>
<span>${catalogue.title}</span>
<span>By ${catalogue.owner?.fullname}</span>
</span>
<span>
<span>love
</span>
</a>
<i class="icn-close-white"></i>
</div>
</g:each>
JS抓住所有瓦尔(数据)就好了,但问题在控制器中,itemid似乎在堆栈跟踪中返回null。我无法将所有变量发送给控制器。我希望能够找到任何类型,组合,图像等,因为它的ID从书签中删除。
def itemid = params.itemid
println " --> itemid -- ${itemid}"
if (params.portfolio) {
itemid.delete()
println ">>> delete portfolio id"
} else if (params.catalogue) {
itemid.delete()
println ">>> delete id"
} else if (params.image) {
itemid.delete()
println ">>> delete image id"
}
测试println,但没有消息或任何东西。因此,假设这部分不起作用。
帮助感谢!
如果我更换项目itemid,但它显示正确的ID,因为我有超过4个ID,它只会显示第一个。这是为什么? – kittymeows
请解释“超过4个ID”。你的意思是说你有4条记录吗?你可能只发送其中一个... –
嗨它已经解决了。控制器 - 我错过了从模型本身删除的关键。 – kittymeows