Ионная передача массива со страницы на другую страницу

0

Я новичок в Ionic, и я разрабатываю демоверсию, содержащую две страницы. Первая страница содержит форму, содержащую 3 поля. Все эти значения из трех входов хранятся в массиве. Я хочу отобразить массив в формате таблицы на второй странице, но я не могу это сделать. Как отобразить массив на второй странице?

Первая страница:

Изображение 174551

Вторая страница:

Изображение 174551

Страница один HTML:

<form class="form-horizontal" role="form">
        <div class="form-group">
            <label class="control-label col-sm-2" for="email">Name:</label>
            <div class="col-sm-10">
                <input type="text" class="form-control" id="name" placeholder="Enter Name" ng-model="contact.name">
                <div>{{contact.name}}
                </div>
            </div>
        </div>
        <div class="form-group">
            <label class="control-label col-sm-2" for="pwd">Email:</label>
            <div class="col-sm-10">
                <input type="email" class="form-control" id="email" placeholder="Enter Email" ng-model="contact.email">
            </div>
        </div>
        <div class="form-group">
            <label class="control-label col-sm-2" for="pwd">Mobile No:</label>
            <div class="col-sm-10">
                <input type="tel" class="form-control" id="mobile" placeholder="Enter Mobile" ng-model="contact.mobile">
            </div>
        </div>
        {{contact}}
        <div class="form-group">
            <div class="col-sm-offset-2 col-sm-10">
                <button type="submit" class="btn btn-primary" ng-click="submit(contact)">Submit</button>
            </div>
        </div>
    </form>

Второй HTML:

 <div class="jumbotron" >
    <table class="table table-hover" >
      <thead>
        <tr>
          <th>Name</th>
          <th>Email</th>
          <th>Mobile</th>

        </tr>
      </thead>
      <tbody>
        <tr ng-repeat="x in contacts track by $index"> 
          <td>{{x.name}} </td>
          <td>{{x.email}}</td>
          <td>{{x.mobile}}</td>
        </tr>
      </tbody>
    </table>
    </div>
  </ion-content>

app.js

controller('Home', function($scope,$stateParams,contact){

    $scope.contacts = [];
        /*$scope.contact ={};*/
        console.log($scope.contacts.length);
        console.log($scope.contacts);

        $scope.submit = function(contact) {
            // console.log('am in');

            $scope.contacts.push(contact);
            console.log($scope.contacts);
            refresh();
        };

        var refresh = function() {
            $scope.contact = '';
        };
        $scope.removeItem = function(x) {
            var index = $scope.contacts.indexOf(x);
            alert("deleting" + index);
            $scope.contacts.splice(index, 1);

        }
        $scope.editItem = function(x) {
            $scope.current = x;
        }
        $scope.save=function(x){
          $scope.current={};

        }

})
Теги:
ionic-framework
hybrid-mobile-app

1 ответ

2

для передачи параметров через представления я рекомендую использовать сервис или завод, он гораздо удобнее обслуживать.

Но если вы хотите использовать $ stateParams, вам нужно передать их в функцию $ state.go:

$state.go('app.book', {
     bookId: book._id
});

И затем, в вашем втором представлении, получите такой параметр:

$stateParams.bookId

Конечно, вам тоже нужно положить его в маршрутизатор

url: 'books/:bookId'

РЕДАКТИРОВАТЬ:

Вот пример с фабрикой.

Сначала, когда вы собираетесь перенаправить, установите значения:

function bookDetail(book) {
    bookDataFactory.setBookSelected(book);
    $state.go('app.book');
}

Тогда в вашем другом представлении появляется параметр:

vm.bookSelected = bookDataFactory.getBookSelected();

Наконец, это завод:

(function() {
'use strict';

angular
    .module('library')
    .factory('bookDataFactory', bookDataFactory);

/* @ngInject */
function bookDataFactory() {

    var bookSelected;

    var service = {
        setBookSelected: setBookSelected,
        getBookSelected: getBookSelected
    };

    return service;

    function setBookSelected(book) {
      bookSelected = book;
    }

    function getBookSelected() {
      return bookSelected;
    }
  }
})();
  • 0
    можете показать мне пример, потому что я новичок в ионной
  • 0
    с обслуживанием / фабрикой? или Stateparams
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню