AngularJS обменивается данными, хранящимися в контроллере между различными модулями - PullRequest
0 голосов
/ 06 октября 2018

Я совершенно новичок в AngularJS (версия 1.6.9) и уже пару дней пытаюсь это выяснить.

Итак, я пытался достичьвеб-сайт корзины, на котором вы выбираете то, что хотите купить, нажимаете кнопку «Оформить заказ» и попадаете на страницу оформления заказа, где вы можете увидеть, что находится в вашей корзине, и общую стоимость.Проблема заключается в том, что когда пользователь нажимает кнопку «Оформить заказ» и страница «Оформить заказ» загружается, должны быть представлены выбранные продукты и их общая стоимость.У меня есть вся эта информация, хранящаяся в контроллере моего модуля корзины, но вопрос в том, как я могу получить доступ к этой информации из контроллера моего модуля проверки.Я попытался создать сервис, сохранить информацию там, а затем внедрить ее в контроллер извлечения, но я не могу правильно сохранить информацию из моего контроллера в сервис.

'use strict';

//define CART module
angular.module('cart', ['ngRoute'])
//configuration for CART module
.config(['$routeProvider', function($routeProvider){
  $routeProvider.when('/cart', {
    templateUrl: '/public/cart/cart.html',
    controller: 'cartCtrl as vm'
  });
}])
.controller('cartCtrl', function(){
  this.chocolate =[
    {
      pack: '3',
      price: 5,
      checkState: false
    },
    {
      pack: '5',
      price: 7,
      checkState: false
    },
    {
      pack: '10',
      price: 10,
      checkState: false
    }
  ]
  this.honey = [
    {
      pack: '3',
      price: 5,
      checkState: false
    },
    {
      pack: '5',
      price: 7,
      checkState: false
    },
    {
      pack: '10',
      price: 10,
      checkState: false
    }
  ]
  this.candy = [
    {
      pack: '3',
      price: 5,
      checkState: false
    },
    {
      pack: '5',
      price: 7,
      checkState: false
    },
    {
      pack: '10',
      price: 10,
      checkState: false
    }
  ]

  this.totalCost = 0;
  this.calculateTotal = function (checked, price) {
    if (checked) {
      this.totalCost += price;
    } else {
      this.totalCost -= price;
    }
  }

});

'use strict';

angular.module('checkout', ['ngRoute'])
.config(['$routeProvider', function($routeProvider){
  $routeProvider.when('/checkout', {
    templateUrl: 'public/checkout/checkout.html',
    controller: 'checkoutCtrl'
  });
}])
.controller('checkoutCtrl', ['$scope', function($scope){

}]);

1 Ответ

0 голосов
/ 06 октября 2018

Прежде всего, вы не должны внедрять ngRoute в оба модуля, просто установите его в главном модуле.

angular.module('checkout', ['ngRoute']) //remove ngRoute from here

Во-вторых, просто добавьте второй модуль в первый в качестве зависимости, добавьте извлечениездесь

angular.module('cart', ['ngRoute','checkout'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...