javascript - AngularJS OnsenUI 在子页面的 nav.popPage() 上重新加载父页面

标签 javascript html angularjs onsen-ui

我在 ng-init 上调用一个函数,在该页面中,我在单击按钮时将一个新页面推送到导航器的 pageStack。在子页面中,我正在弹出当前页面。现在我想在子页面从页面堆栈中移除时重新加载父页面。

代码如下:

HTML

<ons-navigator var="nav" page="page1.html">

</ons-navigator>

<ons-template id="page1.html">
    <ons-page ng-controller="pageOneController" ng-init="reload()">
        <ons-toolbar>
            <div class="center">Page 1</div>
        </ons-toolbar>
        <ons-button ng-click="nav.pushPage('page2.html')">Push Page</ons-button>
    </ons-page>
</ons-template>

<ons-template id="page2.html">
    <ons-page>
        <ons-toolbar>
            <div class="center">Page 2</div>
        </ons-toolbar>
        <ons-button ng-click="nav.popPage();">Pop Page</ons-button>
    </ons-page>
</ons-template>

AngularJS

module.controller('pageOneController', function(){
    $scope.reload = function(){
        console.log('Page one controller reloaded');
    }
});

更新

一种解决方案是通过使用重新加载应用

window.location.reload(true);

最佳答案

虽然 Fran 的回答很好,但当页面被替换时,UI 中会出现小的闪烁/打嗝。我通过使用 insertPage() 并更改操作的顺序采取了稍微不同的方法。最终结果是更流畅的 UI 流程:

$scope.replacePreviousPage = function(url) {
      var pages = $scope.nav.getPages(),
          index = pages.length - 2;

      if (index < 0)
          return;

      $scope.nav.insertPage(index, url);
      pages.splice(index, 1);
};

你可以创建另一个函数来封装替换和弹出,或者像这样调用它们:

$scope.replacePreviousPage('views/page1.html');
$scope.nav.popPage();

我正在考虑将其作为一个选项(即 option.reloadPage)修补到 popPage() 中并提交一个拉取请求。

关于javascript - AngularJS OnsenUI 在子页面的 nav.popPage() 上重新加载父页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29470198/

相关文章:

javascript正则表达式检查字符和数字以外的内容

javascript - 在 Javascript 中模拟点击事件

html - 无法在 svg 中设置 foreignObject 的大小

angularjs - 从 Controller 将对象传递给 angularjs 指令

javascript - 如何使用 2 个 JSON 选项在 Angular.js 中创建自定义 <select> 过滤器

javascript - 我可以使用关键字 "Cannot read property ' 解决这个 'defer' xxxx' of undefined"问题吗?

javascript - 在 JS 中转换 OHLC 中的连续股票数据(开盘价、最高价、最低价、收盘价)

JavaScript:从表配置字符串中提取列标题

javascript - 如何在 Web 浏览器中以 html 或 javascript 实现文本转语音?

javascript - AngularJs 工厂和 Controller 控制流程