我有一个包含后退按钮的小部件,当单击该后退按钮时,我想要关闭具有小部件的窗口(父窗口)。 这是我的widget.xml:
<Alloy>
<View id="topBar">
<View id="leftItems">
<ImageView id="backIcon" onClick="previousPage" />
<ImageView id="logo" />
</View>
<View id="midItems">
<Label id="pageTitle"></Label>
<ImageView id="searchIcon" onClick="searchIcon" platform="ios" />
<SearchBar id="searchBar" platform="ios" />
<SearchView id="searchView" ns="Ti.UI.Android" platform="android" onBlur="pageTitleVisiability" onFocus="pageTitleVisiability" />
</View>
<View id="rightItems">
<ImageView id="createIcon" onClick="createPost" />
</View>
</View>
</Alloy>
并在widget.js中:
function previousPage(argument) {
// closing the window
}
我尝试在窗口小部件中发送自定义属性,窗口名称如下:
Alloy.createController(&#39; windowName&#39)关闭();
但它说窗口没有打开
答案 0 :(得分:1)
您无法在窗口小部件中创建控制器并尝试关闭它,您正在创建窗口的新实例,而不是引用调用控制器。我会使用消息来执行关闭。在你的previousPage函数中,添加“$ .trigger('closeParent');”发出信号关闭窗户。然后在调用窗口(引用窗口小部件)内添加类似“$ .. on('closeParent',);;”的内容。然后关闭该函数中的窗口。我希望这是有道理的。
答案 1 :(得分:0)
设置回调可以解决您的问题。
你的&#34; widget.js&#34; :
var previousPageCallback;
function previousPage() {
if(previousPageCallback) previousPageCallback();
}
module.exports = {
previousPageCallback : previousPageCallback
};
您的&#34; previousWindow.xml&#34;
<Window>
<Widget id="myWidget" src="<whateverYourWidgetNameIs>"/>
</Window>
你的&#34; previousWindow.js&#34; (您使用小部件的窗口)
$.myWidget.previousPageCallback = $.previousWindow.close();
谢天谢地