Ionic framework 如何将动态数据推送到JavaScript对象?

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">

我是离子框架的新手。我刚开始在AngularJS中构建一些功能。在这里,我想要的是在HTML页面中输入用户的电子邮件和预订ID,然后将其重定向到显示所有电子邮件ID和预订ID的其他页面。。。这是我的密码:

Reservation.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>
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。这些都没用。