【问题标题】:How to populate jQuery UI Select2 with Restangular如何使用 Restangular 填充 jQuery UI Select2
【发布时间】:2013-10-02 19:17:21
【问题描述】:

我不明白为什么 Restangular 在 jquery-ui 回调中的行为与它在其他任何地方的行为方式不同。可以吗?

以下在我的控制器中有效:

Restangular.all('skills').getList().then(function(result) {
  console.log(result);
});

但是,当我在 jquery-ui-select2(通过 angular-select2)的查询函数中使用 Restangular 时,它从不发出请求。

HTML:

<input type="text" ui-select2="skillOptions" ng-model="skills">

JavaScript:

$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);
    });
  }
};

是否有另一种方法可以将查询回调与 Restangular 一起使用,或者任何人都可以看到为什么这不起作用?

【问题讨论】:

    标签: javascript angularjs angular-ui jquery-select2


    【解决方案1】:

    解决方案是按照this bit of the documentation 将回调嵌套在$scope.$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);
          });
        });
      }
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-28
      • 2015-06-27
      • 1970-01-01
      相关资源
      最近更新 更多