当应用程序停留时告诉用户“正在保存”;(方法.调用正在运行但未完成)
Say to user when app stay "saving" (Method.call is running and not completed)
当用户编辑文本时显示"Saving…"的一种google文档。或者所有使用ajax并且需要在服务器上保存内容的网站。
我已经理解,流星保存MongoDB(服务器端)通过方法。呼叫(不是存根)。但怎么能知道什么时候所有的方法。调用(写数据库)结束了吗?(非客户端(minimongo))
编辑:在我的例子中,有3种方法用于CRUD操作,定义在客户机和服务器上:
- 删除
当此方法在服务器上运行时,我希望用户收到"saving…"消息的通知。
可以使用异步回调时,从客户端调用方法?
异步回调确实是你想要的。在最简单的情况下:
Session.set("theThingIsLoading", true);
Meteor.call("doTheThing", function (error, result) {
if (error) {/* report it somehow */}
Session.set("theThingIsLoading", false);
});
{{#if theThingIsLoading}}
<p>Loading...</p>
{{/if}}
其中theThingIsLoading
是执行Session.get("theThingIsLoading")
的助手
我建议使用大气包"auto nprogress"。当一个动作被处理时,它会在屏幕顶部显示一个漂亮的加载条。
希望这就是你想要的!
https://atmospherejs.com/package/auto-nprogress我认为user3374348的答案可能导致奇怪的行为,如果多个方法被调用。我建议:
increaseOngoingMethods=function(){
Session.set("ongoingMethods")=Session.get("ongoingMethods")+1;
}
decreaseOngoingMethods=function(){
Session.set("ongoingMethods")=Session.get("ongoingMethods")-1;
}
increaseOngoingMethods();
Meteor.call("doTheThing", decreaseOngoingMethods);
UI.registerHelper('Methodsareongoing', function() {
return !!Session.get("ongoingMethods")
});
{{#if Methodsareongoing}}
<p>Loading...</p>
{{/if}}
注意:
在methodcall的回调函数上没有括号
在增加和减少函数的声明前面没有变量——这样它们应该是全局可用的。
Methodsareongoing在所有模板中都是可用的,因为UI。registerHelper
John Smith saving
John Smith是上下文对象的一部分。
如果不是这样,请参阅我的其他答案
原始答:
你试过使用'isSimulation'属性吗?
{{#if isSimulation}}
<b>Saving</b>
{{/if}}
如果你的方法在客户端也可用,它应该工作。如果没有,请将您的方法添加到此线程
更新:更新后的简单CRUD操作应该能够在客户机上运行。如果你尝试了这个,但从来没有看到"保存"位在你的页面上,这是因为它是如此之快:-/在《发现流星》这本好书中,为了说明这种技术他们实际上使用了一种奇特的延迟方法,因此用户能够看到模型仿真。
- 如何在webView,Android中从@JavascriptInterface方法调用Javascript
- javascript从子方法调用父方法
- 我应该返回一个类似console.log()的方法调用吗
- NodeJS-从同一文件中的另一个方法调用一个方法
- 使用restangular save方法调用put与post时的控件
- 从实例方法调用实例方法
- Node.js-异步方法调用问题
- Jquery事件绑定获胜'当作为方法调用时不起作用,但当直接在控制台中调用时会起作用
- 向模板实例变量传递调用方法调用的结果时出现异常
- jQuery 方法调用了两次
- 不能从 Backbone.View 的方法调用 Backbone.collection 的方法,其中包含 require
- 组合 onLayout 的方法调用
- lodash/下划线 - 使用绑定与方法调用和方法保持未绑定
- 从公共方法调用模块的私有函数
- 如何对 jqGrid 的 loadComplete 和 onSelectRow 进行基因预和后方法调用
- 完全限定的 JavaScript 方法调用
- 为什么我在 Angular JS 中收到两个方法调用
- 如何在从排序方法调用参数时将其传递给回调
- 使用两种不同的方法调用方法
- 如何在 javascript 中更改方法调用的全局范围