通过在Dojo mobile ViewController.openExternalView中动态更改打开同一外部视图的

dynamically change the container in different pages which open the same external view by in Dojo mobile ViewController.openExternalView

本文关键字:视图 外部 动态 Dojo mobile ViewController openExternalView      更新时间:2023-09-26

我正试图在不同页面中的不同容器上加载一个外部视图。集装箱可以装载。但是容器不会改变。这意味着,首先我点击"按钮1",外部视图将显示在"container1"内部。然后我点击"按钮2",外部视图将显示。但如果我查看源代码,它在"container1"中。

有人能建议我如何动态更改显示外部视图的容器吗?

我正在使用做Hybric移动应用程序

  • 道场1.9.3

以下是我正在尝试的片段。

page1.html

<div id="page1_container" data-dojo-type="dojox.mobile.View>
 <button id="btn1" onClick="loadExternalView('container1');" value="Button1"><br>
</div>
<div id="container1" data-dojo-type="dojox.mobile.View">
 <!-- An external view is loaded here when clicking the button above -->
</div>

page2.html

<div id="page2_container" data-dojo-type="dojox.mobile.View>
 <button id="btn2" onClick="loadExternalView('container2');"><br>
</div>
<div id="container2" data-dojo-type="dojox.mobile.View">
 <!-- An external view is loaded here when clicking the button above -->
</div>

externalView.html

<div data-dojo-type="dojox.mobile.View" id="vExternalView">
 <div id="c" data-dojo-type="dojox.mobile.Container">
  <span>I'm from External View</span>
 </div>
</div>

javascript

function loadExternalView(container){
 var vc = dojox.mobile.ViewController.getInstance();
 vc.openExternalView({
  url:"externalView.html",
  transition:"slide"
 },dijit.registry.byId(container).containerNode);
}

vc.openExternalView()只会在尚未加载视图的情况下加载视图,因为它是在第一次单击"按钮1"时加载的,所以当您单击"按钮2"时,它不会在container2内重新加载,顺便说一句,这是一件好事,因为如果它加载了,您会因为重复的id而出现错误。