gpt4 book ai didi

javascript - angular.js ui-router 不传递任何数据

转载 作者:行者123 更新时间:2023-11-30 00:18:42 25 4
gpt4 key购买 nike

在我的Ionic 应用 中,我想将参数从一个 subview 传递到另一个 subview 。当我第一次传递参数时,它按预期工作,但我的问题是,当我返回第一个 subview 然后转到另一个 subview 时,它会转到没有参数的页面。我的代码如下:

index.html(项目/www)

<!DOCTYPE html>
<html>
<head>
<link href="lib/ionic/css/ionic.css" rel="stylesheet">
<script src="lib/ionic/js/ionic.bundle.js"></script>
<script src="lib/ngCordova/dist/ng-cordova.js"></script>
<script src="cordova.js"></script>
<script src="js/app.js"></script>
<script src="js/main.js"></script>
<script src="js/routes.js"></script>
</head>
<body ng-app="app" animation="slide-left-right-ios7" >
<!-- main window -->
<div>
<ion-nav-view></ion-nav-view>
</div>
</body>

</html>

route.js (www/js/route.js)

angular.module('app.routes', [])
.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('mainUser', { // first window
url: '/mainuser',
templateUrl: 'templates/mainUser.html',
controller: 'mainCtrl'
})
.state('userDrive', { // second window
url: '/user_drive',
params: {
driveData: null // parameter send
},
templateUrl: 'templates/user_drive.html',
controller: 'DriveCtrl'
});
$urlRouterProvider.otherwise('/mainUser');
});

templates/mainUser.html

 <ion-side-menus>
<ion-side-menu-content>
<ion-content class="padding" style="background-color:#fff;">
<input type="date" ng-model="selectData.selectedDate" placeholder="Date">

<input type="time" ng-model="selectData.selectedTime" placeholder="Time">
</ion-content>
<div class="bar bar-footer">
<div class="button-bar">
<a ui-sref="userDrive({ driveData: selectData })" class="button"> Drive </a>
</div>
</div>
</ion-side-menu-content>
</ion-side-menus>

这里点击Drive按钮后,会正确重定向到参数driveDatauserDrive subview 。但是我回到 mainUser 然后更改 selectData.selectedDateselectData.selectedTime 然后再次单击 Drive按钮,它将重定向到 userDrive subview ,无需 driveData 参数。

userDrive Controller

.controller('DriveCtrl', function($scope, $state, $stateParams) {       
console.log("DriveCtrl"); // after redirect to this controller second time
// it also print no value
// seems might be DriveCtrl is not called
console.log("$stateParams : ", $stateParams);
})

最佳答案

问题是 View 是由 Ionic 缓存的,在这种情况下 Controller 只执行一次,所以这就是为什么你只在第一次看到日志的原因。

您需要使用 ionic View 事件,这里是文档:http://ionicframework.com/docs/api/directive/ionView/

关于javascript - angular.js ui-router 不传递任何数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33932259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com