Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取从gsp到js的var,然后是控制器_Javascript_Jquery_Grails - Fatal编程技术网

Javascript 获取从gsp到js的var,然后是控制器

Javascript 获取从gsp到js的var,然后是控制器,javascript,jquery,grails,Javascript,Jquery,Grails,控制器 class BookmarkItemApiController { static responseFormats = ['json', 'xml'] static allowedMethods = [delete:['POST', 'DELETE'], update:['POST', 'PUT']] def index() { render (text:"test") }

控制器

        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

普惠制例子

     <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>
正在测试println,但没有消息或任何东西。所以假设这部分不工作


谢谢你的帮助

如果我看对了,您发送的参数中包含名称项:

在控制器中,您要查找itemid:


若我用itemid替换项,它将显示正确的id,但因为我有4个以上的id,它将只显示第一个id。为什么?请解释4个以上的id。你的意思是你的视图中有4个记录吗?你可能只发送了其中一个…嗨,问题已经解决了。控制器-我错过了从模型本身删除的键。
     <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>
        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"
    }
var sendData = {
  item: itemID,
  // ownerId: userSessionId
};
///not working here ////
def itemid = params.itemid
println " --> itemid -- ${itemid}"