$ q不是函数:angulargrid.js

时间:2016-09-22 06:59:02

标签: angularjs

我使用this角度库来查看像pinterest中的图像。

它包含这组代码。

function ngCheckAnim() {
   var leavingElm = domToAry(listElms).filter(function(elm) {
        return single(elm).hasClass('ng-leave');
        });
   return $q(function(resolve) {
        if (!leavingElm.length) {
            resolve();
        } else {
          single(leavingElm[0]).one('webkitTransitionEnd transitionend msTransitionEnd oTransitionEnd', function() {
         $timeout(function() {
             listElms = getListElms();
             resolve();
         });
         });
        }
      }); 
}

在使用该库时,我发现错误 $ q不是ngCheckAnim的功能

有人可以帮我解决这个错误吗?

1 个答案:

答案 0 :(得分:0)

$ q从angularjs 1.3开始获得它自己的构造函数。但您可以更改代码并使用正常方法,如下面的答案中所述。

$q promises - Object is not a function

特别是对于angulargrid.js,我在两个地方做了一些修改。

var deferred = $q.defer();
                img.onload = function() {
                    onLoad(img);
                    deferred.resolve();
                  };
                  img.onerror = deferred.reject;

              loadedImgPromises.push(deferred.promise);

另一个地方。

if (!leavingElm.length) {
              deferred.resolve();
            } else {
              single(leavingElm[0]).one('webkitTransitionEnd transitionend msTransitionEnd oTransitionEnd', function() {
                $timeout(function() {
                  listElms = getListElms();
                  deferred.resolve();
                });
              });
            }
          return deferred.promise;