Grails和autoComplete

时间:2014-10-03 18:45:04

标签: grails autocomplete

我正在尝试为.gsp

中的文本字段提供自动填充功能

以下是我的代码。在我看来,每次都会缓存并显示自动完成搜索结果。

例如,

  1. 在文本字段(供应商)中,我尝试搜索以'v'开头的供应商

  2. 它会执行'autoCompleteVendor'操作并且不会返回任何结果,因为找不到匹配项。到目前为止一切顺利。

  3. 然后,我在数据库中添加了一个供应商,比如'vendor1'

  4. 现在,如果我在文本字段(供应商)中搜索,对于以“v”开头的供应商,它甚至不会采取行动,但不会返回与步骤2中的行为完全相同的结果。

  5. 但是,如果我搜索've',那么它会转到该操作并返回'vendor1'作为选项。这是因为我以前从未搜索过've'。

  6. 这种行为似乎适用于所有搜索。第一次搜索的结果以某种方式缓存,每次搜索该字符时返回相同的结果,即使数据库中的数据被添加/编辑/删除也是如此。

    我期望每次在文本字段中执行搜索时执行操作并从数据库返回结果。而不是从缓存。

    你能告诉我这里的错误吗?

    我尝试设置autoComplete功能的maxCacheLength属性,但似乎也没有。

    .gsp标题部分中的代码

    <script>
    $(function() {
       $( '#vendor').autocomplete({
    
          <%-- maxCacheLength:1, // no caching--%>
    
          source: '<g:createLink controller="pr" action="autoCompleteVendor"/>'
       });
    });
    </script>
    

    .gsp中的Textfield标记

    <g:textField name="vendor" id = "vendor" required=""
                 value="${prInstance?.vendor}"/>
    

    控制器代码

    def autoCompleteVendor = {
       def prSearch= pr.withCriteria {
          ilike 'vendor', params.term + '%'
       }
    
       render (prSearch?.'vendor' as JSON)
    }
    

0 个答案:

没有答案