栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

AngularJS:异步初始化过滤器

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

AngularJS:异步初始化过滤器

这是一个例子:

app.filter("testf", function($timeout) {    var data = null, // DATA RECEIVED ASYNCHRonOUSLY AND CACHED HERE        serviceInvoked = false;    function realFilter(value) { // REAL FILTER LOGIC        return ...;    }    return function(value) { // FILTER WRAPPER TO COPE WITH ASYNCHRonICITY        if( data === null ) { if( !serviceInvoked ) {     serviceInvoked = true;     // CALL THE SERVICE THAT FETCHES THE DATA HERE     callService.then(function(result) {         data = result;     }); } return "-"; // PLACEHOLDER WHILE LOADING, COULD BE EMPTY        }        else return realFilter(value);    }});

这个小提琴是一个使用超时而不是服务的演示。


编辑:根据sgimeno的评论,必须格外小心,不要多次致电该服务。请查看

serviceInvoked
上面代码中的更改和小提琴。另请参阅Angular
1.2.1的分叉小提琴和一个用于更改值并触发摘要循环的按钮:分叉小提琴


编辑2:根据MihaEržen的评论,此解决方案对Angular1.3没有记录程序。该解决方案几乎是微不足道的,虽然,使用

$stateful
过滤器标志,记录在这里下的“状态过滤器”,以及必要的分叉小提琴。

请注意 ,此解决方案会损害性能,因为每个摘要循环都称为过滤器。根据具体情况,性能下降是否可以忽略不计。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/448280.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号