【发布时间】:2014-10-11 05:03:24
【问题描述】:
下面的客户端 javascript 不起作用,因为代码在 cb 被填充之前完成。在 SignalR done 函数中填充 cb 失败,因为调用是异步的,为时已晚。
如何使用 SignalR 填充 source 以响应用户输入到我的预输入文本框?
var tonameSource = function (query, cb) {
setTimeout(function () {
var prefix = $('#toname').val();
var myCBval = [];
talk.server.getpcont(prefix, ConnectionId)
.done(function (mmID) {
$.each(mmID, function () {
var myOBJ = this;
myCBval.push({
name: myOBJ.name,
ID: myOBJ.ID
});
});
}).fail(function (error) {
//
});
cb(myCBval);
}, 300)
};
$(".tt-toname").typeahead(null, {
minLength: 2,
source: tonameSource,
displayKey: 'name',
}).on('typeahead:selected', function (obj, datum) {
//$(".tt-name").typeahead('val', datum.name).typeahead('close');
});
【问题讨论】:
标签: jquery asp.net-mvc signalr twitter-typeahead