当为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}
]
}
};
答案 0 :(得分:1)
将数据属性与API一起使用的最常见用例是在JavaScript中进行一次初始化,为具有唯一设置的几个不同组件供电。
例如,假设我们希望有两个单独的下拉列表,它们使用两个不同的URL来返回结果。
一个用于检索客户,另一个用于检索用户。你可以使用这样的东西。
要记住的一件事是,除非指定了某些 API设置,否则下拉列表不会查询远程端点。因此,需要传递空白对象或具有扩展设置的对象才能触发远程调用。
<强> 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
}
})
;