我使用File dbFile = new File("db");
DBMaker.newFileDB(dbFile)
.closeOnJvmShutdown()
.make();
来显示api查询的结果。属性md-autocomplete
正在迭代承诺:md-items
。
这样做效果很好,并且使用缓存后续使用相同的搜索文本会立即返回相同的结果。
但是当其他搜索参数发生变化时,我需要能够在某些点清除缓存。我怎样才能做到这一点?通过访问md-autocomplete控制器或许?虽然这似乎不合标准,但我不确定如何。
答案 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
设置为true
或false
,具体取决于您是否要继续缓存查询结果。
答案 2 :(得分:-1)
对我有用的东西。在您的自动填充上添加ng-if。然后,在更改影响此字段的其他字段的值的代码中,将该值设置为false,然后在超时内再次将其设置为true。这将有效地从DOM中删除该项并将其全部放回原来并且没有缓存。