温泉 + pushPage + options.onTransitionEnd

Onsen + pushPage + options.onTransitionEnd

我尝试使用 pushPage() 上可用的 options.onTransitionEnd,因为我想在推送页面的控制器中调用 $scope.init() 函数。

我看到我只能将一个匿名函数传递给 onTransitionEnd 选项。

例如:

app.navi.pushPage('page.html', {onTransitionEnd: function(){ alert('ok') }  } );

有一种方法可以在推送页面的控制器中调用 $scope 函数吗?

非常感谢。大卫

只要按钮在 NavigatorController 范围内,您就可以通过这种方式传递函数:

<ons-button ng-click="myNav.pushPage('page1.html', {onTransitionEnd: myFunction})">Push</ons-button>

ons.bootstrap()
.controller('NavigatorController', function($scope) {
  $scope.myFunction = function () {
    console.log('onTransitionEnd');
  };
});

在这里查看:http://codepen.io/frankdiox/pen/Gpzvqw

无论如何,如果你想要初始化推送的页面,也许使用页面事件更容易(只有 pageinit 可用于温泉 UI 1.x):http://onsen.io/guide/overview.html#Pagelifecycle

当然,推送页面的控制器也会运行。