如何以编程方式刷新onFinished回调函数的屏幕?

时间:2013-07-11 09:53:19

标签: appconkit

e.g。我们有一个人调用服务器函数来创建一个新实体:

function loadData() {
    var vServerController = mobileController.serverController();    
    var vJSONRequest =  vServerController.createJSONRPCRequest();

    vJSONRequest.setQueryMethod("createSomeNewElementBasedOnTwoIds");

    vJSONRequest.addParameter("firstID", 1);
    vJSONRequest.addParameter("secondID", 2);
    vJSONRequest.setOnFinish(callBackOnFinish);
    vServerController.addToQueue(vJSONRequest);
}

function callBackOnFinish() {
    var vController = mobileController.activeController();
    vController.showView(Screens.SomeScreen, true);
}

那么我们如何在此次通话后刷新屏幕?服务器不会返回完整的数据集,只会返回一个新数据。

这样做的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

假设您要更新当前显示的数据,您有两个选择 - 并且您可能不需要为此使用回调

  1. 替换显示的数据集
  2. 更新显示的记录
  3. (如果您有用户输入或创建了新条目)合并条目
  4. 1:只需使用foundset.setDataMode(DataMode.REPLACE)从服务器返回数据 - 它将自动刷新显示的数据。但是如果您正在处理一个实体的多个记录而您只想更新其中一个,请使用选项2.

    2:仅返回要更新的特定记录而不更改数据代码。记录由它的key / id元素标识。您可以在实体编辑器中找到标有小键符号的那些。因此,请确保返回所需的关键元素和任何其他元素。 AppConKit将自动将现有记录与数据合并并显示该数据。

    3:如果您在设备上创建了新记录,则该记录将具有名为client_uuid的值。如果现在从包含client_uuid和key元素的服务器返回记录,则在设备上创建的记录将与服务器创建的记录合并,并显示新记录

    希望这有帮助!