温泉 + 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
当然,推送页面的控制器也会运行。
我尝试使用 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
当然,推送页面的控制器也会运行。