Javascript 如何使用Restanglar填充jQuery UI Select2
我不明白为什么Restangular在jQueryUI回调中的行为会与在其他任何地方的行为有所不同。你能吗 以下功能在我的控制器中工作:Javascript 如何使用Restanglar填充jQuery UI Select2,javascript,angularjs,angular-ui,jquery-select2,Javascript,Angularjs,Angular Ui,Jquery Select2,我不明白为什么Restangular在jQueryUI回调中的行为会与在其他任何地方的行为有所不同。你能吗 以下功能在我的控制器中工作: Restangular.all('skills').getList().then(function(result) { console.log(result); }); 但是,当我在jquery-ui-select2的查询函数中使用restanglar(通过angular-select2)时,它从不发出请求 HTML: 有没有其他方法可以将查询回调与Re
Restangular.all('skills').getList().then(function(result) {
console.log(result);
});
但是,当我在jquery-ui-select2的查询函数中使用restanglar(通过angular-select2)时,它从不发出请求
HTML:
有没有其他方法可以将查询回调与Restangular一起使用,或者任何人都能看出这到底为什么不起作用?解决方案是将回调嵌套在
$范围内。$apply
(因为我使用的是AngularJS 1.1.5版),如
下面是一些工作代码:
$scope.skillOptions = {
multiple: true,
query: function(query) {
$scope.$apply(function() {
Restangular.all('skills').getList({
query: query.term
}).then(function(body) {
var skills;
skills = body.skills;
console.log("got skills", skills);
return query.callback({
results: _(skills).map(function(s) {
return {
text: s.name,
id: s.id
};
})
});
}, function(error) {
console.log("Error getting skills", error);
});
});
}
};
$scope.skillOptions = {
multiple: true,
query: function(query) {
// I see this:
console.log("Q:", query.term);
// this silently fails:
Restangular.all('skills').getList({
query: query.term
}).then(function(body) {
// this callback is never reached (nor is the error one)
var skills = body.skills;
console.log("got skills", skills);
query.callback({
data: {
text: 'name',
results: skills
}
});
}, function(error) {
console.error("Error getting skills", error);
});
}
};
$scope.skillOptions = {
multiple: true,
query: function(query) {
$scope.$apply(function() {
Restangular.all('skills').getList({
query: query.term
}).then(function(body) {
var skills;
skills = body.skills;
console.log("got skills", skills);
return query.callback({
results: _(skills).map(function(s) {
return {
text: s.name,
id: s.id
};
})
});
}, function(error) {
console.log("Error getting skills", error);
});
});
}
};