javascript - 在语义 ui 搜索下拉列表中得到未定义值的列表

标签 javascript ruby-on-rails angularjs semantic-ui

我在我的 rails + angular 应用程序中使用 semantic ui,我有一个搜索下拉列表,当我输入字母 s我在下拉列表中得到了一个 undefined 值列表,对于其他单个字母,一切正常。 有趣的是,当我输入字母 s 时,没有对服务器的请求。我无法弄清楚背后的原因。下面是我的代码,请帮忙。

javascript代码:

$('.ui.product.search').dropdown({
    fullTextSearch: true,
    preserveHTML: false,
    debug: true,
    saveRemoteData: false,
    sortSelect: true,
    match: 'text',
    regExp: {
        escape: /[-[\]{}()*+?.,\\^$|#\s]/g,
    },
    apiSettings: {
        url: '/gpr/v1/product_codes/search?name={query}',
    },
});

rails Controller Action :

def search
  # byebug
  search_query = ""
  if not params[:name].blank?
    search_query = "%#{params[:name]}%"
  end
  @product_codes = ProductCode.where("H3Description LIKE ?", search_query)
  #render json: {results: @product_codes }
end

HTML代码:

<div class="two fields">
    <div class="field">
        <label><%= t 'asset.create.h3' %></label>
        <select name="products" class="ui product search dropdown" ng-model="asset_details[0].type_details[$index].crop">
        </select>
    </div>

最佳答案

您选择的正则表达式设置与默认设置相同,因此添加/删除这些行不会导致行为发生任何变化。

设置略simpler example in Codepen使用您提供的相同代码显示单个“s”字符将发送到搜索 API:

$(function() {
    $('.ui.product.search').dropdown({
    fullTextSearch: true,
    preserveHTML: false,
    debug: true,
    saveRemoteData: false,
    sortSelect: true,
    match: 'text',
    regExp: {
        escape: /[-[\]{}()*+?.,\\^$|#\s]/g,
    },
    apiSettings: {
        url: '/gpr/v1/product_codes/search?name={query}',
    },
 });
});

您得到 undefined 结果的事实表明您的搜索 API 正在响应语义 UI 无法以有意义的方式处理的数据。

或者,也有可能是您的 Angular 应用程序以某种方式妨碍了它。例如,如果绑定(bind)到输入的模型字段上有观察者,则输入值可能会被更改并导致语义 UI 下拉菜单出现异常。

我会暂时从输入中删除 ng-model 指令属性,以便首先让下拉搜索正常工作。然后重新添加模型绑定(bind)并从那里继续调试您的 NG 应用。

关于javascript - 在语义 ui 搜索下拉列表中得到未定义值的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39788096/

相关文章:

javascript - 解析 XML 时出错,第 1940 行,第 65 列 : The reference to entity "url" must end with the ';' delimiter

ruby-on-rails - Rake 任务与简单数据库更改的迁移

ruby-on-rails - 异常处理 : "undefined method ` ___ _' for nil:NilClass"

javascript - protractor.findElement() 是否意味着滚动到该元素?

angularjs - Golang、cors 和 angularjs - 缺少 header

javascript - 将 $scope 添加到 &lt;script&gt;&lt;/script&gt; 中的 url 参数

javascript - JSON 请求的动态脚本标签...检测是否存在 XXX 错误?

javascript - 使用 Chrome 扩展内容脚本将 iframe 加载到页面中

ruby-on-rails - 更改路由转换时如何重定向(301)?

javascript - 使用依赖注入(inject)时,通过引用调用服务或直接调用服务有区别吗?