如何清除md-autocomplete缓存?

时间:2015-08-08 13:45:12

标签: angularjs autocomplete angular-material

我使用File dbFile = new File("db"); DBMaker.newFileDB(dbFile) .closeOnJvmShutdown() .make(); 来显示api查询的结果。属性md-autocomplete正在迭代承诺:md-items

这样做效果很好,并且使用缓存后续使用相同的搜索文本会立即返回相同的结果。

但是当其他搜索参数发生变化时,我需要能够在某些点清除缓存。我怎样才能做到这一点?通过访问md-autocomplete控制器或许?虽然这似乎不合标准,但我不确定如何。

3 个答案:

答案 0 :(得分:11)

从角度材料1.0.5版开始,这是不可能的。我没有找到任何可接受的解决方法,因此我只是使用md-no-cache="true"禁用缓存。

我对角度材料项目进行了logged an issue for this,其中包括有关如何运作的建议。

答案 1 :(得分:2)

绝对可以在md-no-cache指令上随时以编程方式重置md-autocomplete属性。

如果控制器上有布尔变量,请说:

$scope.noCacheResults = false;

然后在您的指令上,您可以将此变量绑定到md-no-cache属性:

<md-autocomplete ...
                 md-no-cache="noCacheResults">
</md-autocomplete>

就像这样,只要您的搜索参数发生变化,您就可以将$scope.noCacheResults设置为truefalse,具体取决于您是否要继续缓存查询结果。

答案 2 :(得分:-1)

对我有用的东西。在您的自动填充上添加ng-if。然后,在更改影响此字段的其他字段的值的代码中,将该值设置为false,然后在超时内再次将其设置为true。这将有效地从DOM中删除该项并将其全部放回原来并且没有缓存。