Ionic framework 如何将动态数据推送到JavaScript对象?
我是离子框架的新手。我刚开始在AngularJS中构建一些功能。在这里,我想要的是在HTML页面中输入用户的电子邮件和预订ID,然后将其重定向到显示所有电子邮件ID和预订ID的其他页面。。。这是我的密码: Reservation.html:Ionic framework 如何将动态数据推送到JavaScript对象?,ionic-framework,Ionic Framework,我是离子框架的新手。我刚开始在AngularJS中构建一些功能。在这里,我想要的是在HTML页面中输入用户的电子邮件和预订ID,然后将其重定向到显示所有电子邮件ID和预订ID的其他页面。。。这是我的密码: Reservation.html: <form ng-submit = "goBooking(data)"> <div class="list"> <label class="item item-input">
<form ng-submit = "goBooking(data)">
<div class="list">
<label class="item item-input">
<input type="text" placeholder="Enter Your Email Id" ng-model="data.emailId" required>
</label>
<label class="item item-input">
<input type="text" placeholder="Enter Your Booking Id" ng-model="data.bookingID" required>
</label>
</div>
<div class="padding">
<input type="submit" class="button button-block button-positive" value = "Submit" />
</div>
</form>
</ion-content>
</ion-view>
<ion-view view-title="Hotel Reception">
<ion-content>
<ion-list>
<ion-item ng-controller = "reservationCtrl" ng-repeat="item in toDoListItems">
<p> Welcome {{item.emailId}} !!!! </p>
ion-item>
</ion-list>
</ion-content>
</ion-pane>
</ion-view>
myBookingDeatils.html:
<form ng-submit = "goBooking(data)">
<div class="list">
<label class="item item-input">
<input type="text" placeholder="Enter Your Email Id" ng-model="data.emailId" required>
</label>
<label class="item item-input">
<input type="text" placeholder="Enter Your Booking Id" ng-model="data.bookingID" required>
</label>
</div>
<div class="padding">
<input type="submit" class="button button-block button-positive" value = "Submit" />
</div>
</form>
</ion-content>
</ion-view>
<ion-view view-title="Hotel Reception">
<ion-content>
<ion-list>
<ion-item ng-controller = "reservationCtrl" ng-repeat="item in toDoListItems">
<p> Welcome {{item.emailId}} !!!! </p>
ion-item>
</ion-list>
</ion-content>
</ion-pane>
</ion-view>
欢迎{item.emailId}}
离子项目>
运行这个之后,
我得到的输出是
欢迎你,Versha!!
欢迎你,拉胡尔
我没有收到那封电子邮件ID
和预订ID
。我在我的Reservation.html上输入的内容。我想我的输入值没有在toDoListItems
中设置
在某些地方,此代码没有插入值$scope.toDoListItems.push({emailId:data.emailId,bookingID:data.bookingID})代码>
请建议!!提前谢谢 我假设您对每个状态使用相同的控制器?更改状态时,重新加载控制器,这会将$scope.toDoListItems
数组重置为初始状态。您将要在服务中保存您的toDoListItems
。所以
控制器:
.controller('reservationCtrl', function($scope, $state, $stateParams, toDo) {
$scope.getTotal = function(){
return toDo.toDoListItems.length;
}
$scope.goBooking = function(data){
toDo.toDoListItems.push({
emailId:data.emailId,
bookingID:data.bookingID
});
$state.go('myBookingDetails');
data.emailId = null;
data.bookingID = null;
};
});
服务:
.factory('toDo', [function () {
var toDoListItems = [{
emailId: 'versha',
bookingID: '123'
}, {
emailId: 'rahul',
bookingID: '456'
}];
return {
toDoListItems : toDoListItems
};
}]);
这将确保数据在状态更改后仍然有效,但是如果您希望此数据永久保留并保持在页面重新加载等状态。。如果你是一个纯粹的前端人员,那么你需要连接一个数据库。我建议你看一下一个非常简单的方法就是使用$localstorage
大概是这样的:
$scope.goBooking = function(data){
$scope.toDoListItems.push({emailId:data.emailId,bookingID:data.bookingID});
$localstorage.setObject('toDoListItems', $scope.toDoListItems);
$state.go('myBookingDetails');
};
然后在新视图中(正如Jacob指出的,控制器和作用域正在刷新)
您只需要将$localstorage服务添加到您的服务中(详细信息见下面的链接)。有关将localstorage与Ionic一起使用的更多信息,请访问:我也不知道为什么,但你们都在$state.go之后调用assignments。这些都没用。