【问题标题】:In Alloy Titanuim, How to close widget's parent window在 Alloy Titanium 中,如何关闭小部件的父窗口
【发布时间】:2017-01-19 17:56:53
【问题描述】:

我有一个包含后退按钮的小部件,当单击该后退按钮时,我想关闭具有该小部件的窗口(父窗口)。 这是我的 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('windowName').close();

但它说窗口没有打开

【问题讨论】:

    标签: titanium titanium-mobile titanium-alloy


    【解决方案1】:

    您无法在小部件中创建控制器并尝试关闭它,您正在创建窗口的新实例,而不是引用调用控制器。我会使用消息传递来执行关闭。在您的 previousPage 函数中,添加“$.trigger('closeParent');”发出关闭窗口的信号。然后在调用窗口(小部件被引用的地方)添加类似“$..on('closeParent', );”的内容然后关闭函数中的窗口。我希望这是有道理的。

    【讨论】:

    • 我试图在 previousPage 函数和调用窗口中触发事件 $.on('closeParent', function() {alert('something');});但没有发生任何事情,任何帮助
    • 现在当我将“on”事件放在小部件 id 中时它可以工作,就像这样“ $widgetId.on('closeParent', function() {alert('something');}); ” ,谢谢。
    【解决方案2】:

    设置回调应该可以解决您的问题。

    你的“widget.js”:

    var previousPageCallback;
    
    function previousPage() {
        if(previousPageCallback) previousPageCallback();
    }
    
    module.exports = {
        previousPageCallback : previousPageCallback
    };
    

    你的“previousWindow.xml”

    <Window>
        <Widget id="myWidget" src="<whateverYourWidgetNameIs>"/>
    </Window>
    

    您的“previousWindow.js”(您使用小部件的窗口)

    $.myWidget.previousPageCallback = $.previousWindow.close();
    

    谢谢你的欢呼

    【讨论】:

    • 它返回“窗口未打开。忽略此关闭调用”
    猜你喜欢
    • 1970-01-01
    • 2017-08-13
    • 1970-01-01
    • 2013-10-09
    • 2020-06-26
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    相关资源
    最近更新 更多