【发布时间】:2016-08-03 04:02:59
【问题描述】:
场景是我在我的应用程序中使用了一个简单的过滤器来裁剪这样的图像 - HTML -
<img ng-if="item.data.topImage" ng-src="{{item.data.topImage | cropImage:240:135}}">
原始过滤器 -
.filter('cropImage', [function () {
return function (url, width, height, noDefault) {
return cropImage(url, {
width: width,
height: height
});
};
}])
这个cropImage 是一个简单的函数。
现在我想调用一个使用异步回调的函数。
现在更新后的过滤器是这样的——
更新过滤器 -
.filter('cropImage', [function ($q) {
return function (url, width, height, noDefault) {
var defered = $q.defer();
buildfire.imageLib.local.cropImage(url, {
width: width,
height: height
}, function (e, d) {
if (e)
defered.reject('');
else {
defered.resolve(d);
}
});
return defered.promise;
};
}])
但正如预期的那样,这失败了。
在这种情况下我该怎么办。我知道我可以使用指令,但这个过滤器在我的应用程序中使用。除了 $timeout 我还能做什么?
【问题讨论】:
标签: angularjs asynchronous angularjs-filter