小编Chr*_*tze的帖子

UI-Router的解析函数只调用一次

我打算使用ui-routers解析功能向我的控制器注入一些readiliy解决的promises.

我用示例plnkr做了一个例子.考虑这些嵌套状态:route1route1.list.我有一个名为的abc定义的解析函数route1.现在当我route1第一次导航时,abc被调用并将被解决.现在,当我导航到route1.list并返回时route1,abc不会再次调用.

http://plnkr.co/edit/mi5H5HKVAO3J6PCfKSW3?p=preview

我想这是故意的,但请考虑这个用例:resolve函数通过http检索一些数据,并且应该在某些时候刷新/无效,可能在每次状态更改时.有没有办法在使用嵌套状态时执行此操作?如果在每次注入时都调用了resolve函数,我可以按照我想要的方式实现它:返回旧的,已解决的promise或创建一个新的promise.

我只是对此进行了简单的测试,但如果状态不是嵌套的,那么事情就会像我预期的那样工作.放弃嵌套状态因为这很臭.并且在嵌套状态中具有可用的解析依赖性实际上很好.

angularjs angular-ui-router

23
推荐指数
2
解决办法
1万
查看次数

即使javadoc这样说,java的DB.getCollection()也不会创建集合

DB.getCollectionJavaDoc声明:

获取具有给定名称的集合.如果该集合不存在,则会创建一个新集合.

但是,似乎该集合实际上是在以后创建的.在getCollection()之后不存在.当我例如,插入一个文档,然后创建它.

考虑一下:

myCollection.getDB().getCollection("dummy").getStats()
(com.mongodb.CommandResult) { "serverUsed" : "localhost/127.0.0.1:27801" , "ok" : 0.0 , "errmsg" : "ns not found"}
Run Code Online (Sandbox Code Playgroud)

在我的情况下,我正在调用mapreduce作业,我传递了一个尚未存在的集合.这也会导致'{"serverUsed":"localhost/127.0.0.1:27801","ok":0.0,"errmsg":"ns不存在"}'.

我猜JavaDoc是不正确的.实际上这个集合后来被懒惰地创建了.

如果是这样,那么实现立即创建集合的行为的最佳方法是什么?

我使用的是java驱动程序版本2.11.3

java mongodb

4
推荐指数
1
解决办法
9171
查看次数

标签 统计

angular-ui-router ×1

angularjs ×1

java ×1

mongodb ×1