dojox.mobile.View在5.0.6中执行的performTransition回调

时间:2013-04-30 21:36:59

标签: dojo ibm-mobilefirst

升级到worklight 5.0.6后,我发现 dojox.mobile.View performTransition 方法在转换完成后没有调用回调函数。

  registry.byId("view1").performTransition("view2", 1, "slide", null, function(){console.log("hello")})

1 个答案:

答案 0 :(得分:1)

我已经在Mac OSX 10.8.3上使用Worklight Studio 5.0.6.20130311-0918对其进行了测试,使用Xcode 4.6.2在iPhone 5 iOS 6.1.3上进行了部署,并且运行正常。我不认为这可能会在其他操作系统或设备上有所不同。

以下是我尝试过的代码,从一个全新的Dojo混合WL项目开始,旨在模仿您的描述:

1 /在test / common / test.html中,将其用作HTML内容:

<div data-dojo-type="dojox.mobile.ScrollableView" id="view0"
    data-dojo-props="selected:true">
    <li data-dojo-type="dojox.mobile.ListItem" data-dojo-props="label:'item 1'"></li>
    <li data-dojo-type="dojox.mobile.ListItem" data-dojo-props="label:'item 2'"></li>
</div>
<div data-dojo-type="dojox.mobile.ScrollableView" id="view1">
    <li data-dojo-type="dojox.mobile.ListItem" data-dojo-props="label:'item 3'"></li>
    <li data-dojo-type="dojox.mobile.ListItem" data-dojo-props="label:'item 4'"></li>
</div>

2 /在test / common / js / test.js中,使用此版本的dojoInit():

function dojoInit() {
    require([ "dijit/registry", "dojo/ready", "dojo/parser", "dojox/mobile", 
              "dojox/mobile/compat", "dojox/mobile/deviceTheme", 
              "dojox/mobile/ScrollableView" ],
            function(registry, ready) {
                ready(function() {
                    var v0 = registry.byId("view0");
                    v0.performTransition("view1", 1, "slide", null,
                        function(){
                            alert("transition done");
                            console.log("transition done");
                    });

                });
            });
}

这对我来说很好,包括警报框和控制台中的日志消息。

你说Dojo版本是1.8.1,但这不是我在WL 5.0.6全新安装中看到的Dojo版本。你能检查一下/dojo/version.txt的内容吗?在我这边,它包含“1.8.3-20130207-IBM”。你有同样的吗?如果不这样做,并且使用Eclipse更新升级了旧的WL版本,我建议从头开始安装WL 5.0.6。

此外,在升级到Worklight 5.0.6之前,您使用的是什么版本?您是否在迁移时修改了代码,或者更改WL版本是您对应用程序所做的唯一更改?

希望这有帮助, 阿德里安