2013-04-30 33 views
0

破升级到5.0.6工作灯后,我发现,当转变完成dojox.mobile.ViewperformTransition方法不调用回调函数。dojox.mobile.View performTransition回调在5.0.6

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

你知道哪个道场你/使用的版本?我建议检查文档以查看升级版本中'performTransition'的参数列表,无论可能如何。您可能会发现它更简单(假设您没有使用缩小版本)来检查JS控制台中registry.byId(“view1”)。performTransition'的输出,我经常发现dojo中的注释实际上更有用比文档。 – 2013-04-30 22:43:29

+0

我在发布前在JS控制台中测试过。该版本是1.8.1,但由于这是工作灯,我相信IBM有它自己的编译版本。我有其他纯粹的dojo项目与1.8.0和1.8.3,这工作正常 – Mike 2013-05-01 14:16:38

+0

我不是说测试输出,我不是说你只是再次运行的功能,我的意思是检查实际的函数定义,它会在开始的时候有评论,说明它期望的参数。 – 2013-05-01 20:13:56

回答

1

我有工作灯工作室5.0.6.20130311-0918在Mac OSX 10.8.3测试这一点,使用的Xcode 4.6.2的iPhone 5的iOS 6.1.3部署,和它的工作就好了。我不认为这可能在其他操作系统或设备上有所不同。

这里是我试过,从一个全新的混合动力道场项目WL开始,旨在模仿你的描述代码:

1 /在测试/普通/ 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 /在测试/普通/ 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版本的更改是您对应用进行的唯一更改?

希望这有助于 阿德里安