使用API​​.js进行语义UI搜索选择下拉 - 未发生api调用

时间:2015-12-12 23:25:49

标签: javascript semantic-ui

当为Semantic UI打开调试模式时,我可以在控制台中看到搜索选择下拉列表的操作,但是在使用API​​.js / data-action ="时我从未看到过api调用。 .."语义的功能(如果我将模拟响应直接附加到搜索元素,我可以看到API调用)。事情设置如下:

HTML文件:

<head>
    <script type="text/javascript" src="/static/js/API.js"></script>
</head>

.......

<div class="ui search selection dropdown" data-action="lookup customer">
  <input type="hidden" id="id_customer">
  <i class="dropdown icon"></i>
  <div class="default text">Select a Customer...</div>
</div>

API.js文件:

var api = {
  'lookup customer' : '/js/cust/{query}'
};

我还尝试了另一种API.js声明的变体,我看到了in the docs

$.fn.api.settings.api = { . . . 

我错过了什么?另外,为了测试API.js功能,有没有办法将mockResponses放在API.js文件中?我已经尝试了以下方法,但得到了一个&#34;意想不到的令牌&#34;消息。

var api = {
  'lookup customer' : mockResponse: {
                    success: true,
                    results: [
                        {"custName":"Cust 1","data-id":1},
                        {"custName":"Cust 2","data-id":2},
                        {"custName":"Cust 3","data-id":3}
                    ]
                }
};

1 个答案:

答案 0 :(得分:1)

将数据属性与API一起使用的最常见用例是在JavaScript中进行一次初始化,为具有唯一设置的几个不同组件供电。

例如,假设我们希望有两个单独的下拉列表,它们使用两个不同的URL来返回结果。

一个用于检索客户,另一个用于检索用户。你可以使用这样的东西。

要记住的一件事是,除非指定了某些 API设置,否则下拉列表不会查询远程端点。因此,需要传递空白对象或具有扩展设置的对象才能触发远程调用。

http://jsfiddle.net/056rvjas/

<强> HTML

<div class="ui search selection dropdown" data-action="lookup customer">
  <input type="hidden" id="id_customer">
  <i class="dropdown icon"></i>
  <div class="default text">Select a Customer...</div>
</div>

<div class="ui search selection dropdown" data-action="lookup user">
  <input type="hidden" id="id_customer">
  <i class="dropdown icon"></i>
  <div class="default text">Select a Customer...</div>
</div>

<强>的Javascript

$.fn.api.settings.api = {
    'lookup customer': '/lookup/name={query}&type=customer',
    'lookup user': '/lookup/name={query}&type=user',
}


$('.ui.dropdown')
    .dropdown({
    apiSettings: {
        debug: true
    }
  })
;