Показать сообщение отдельно
  #1 (permalink)  
Старый 29.01.2017, 16:01
Интересующийся
Отправить личное сообщение для mariklozik Посмотреть профиль Найти все сообщения от mariklozik
 
Регистрация: 10.02.2014
Сообщений: 26

передача данных между контроллерами
Здраствуйте. подскажите как передать инфу между контролерами.

Мне надо кликнуть на

<div class="slide slick-slide slick-active" ng-click="????" >
        <p class="category-title">Платья, юбки</p>
    </div>


в контроллере CategoryController , categoriesSection бло

и чтоб в другом (соседнем контроллере) ProductController отрисовались другие товары из product-card. Делал через фабрику - не получаеться. Прошу помощи, спасибо


<div id="container" ng-controller="MainController as main">
  <categories-section class="section" ng-controller="CategoryController as tab"></categories-section>

  <content-section class="section">
        <div class="container" ng-controller="ProductController as productController">
          <div class="row">
            <div class="col-md-6" ng-repeat="x in productController.productDetails">
              <product-card></product-card>
            </div>
          </div>
        </div>
    </content-section>
</div>


categoriesSection:

<div class="btn-group btn-switch categories-switch">
   <label class="btn btn-success" ng-class="{active:tab.isSet(1)}" ng-click="tab.setTab(1)"> Чистка </label>
   <label class="btn btn-success" ng-class="{active:tab.isSet(2)}" ng-click="tab.setTab(2)"> Стирка </label>
</div>

<div ng-show="tab.isSet(1)">    
    <div class="slide slick-slide slick-active" ng-click="????" >
        <p class="category-title">Платья, юбки</p>
    </div>
    <div class="slide slick-slide slick-active" ng-click="????" >
        <p class="category-title">Платья, юбки</p>
    </div>
</div>
<div ng-show="tab.isSet(2)">    
    <div class="slide slick-slide slick-active" ng-click="????" >
        <p class="category-title">Платья, юбки</p>
    </div>
    <div class="slide slick-slide slick-active" ng-click="????" >
        <p class="category-title">Платья, юбки</p>
    </div>
</div>


product-card

<div class="row">
   <div class="col-sm-12 col-xs-6">
      <h2 class="product-price">{{x.price * x.counter}}р.</h2>
   </div>
   <div class="col-sm-12 col-xs-6">
      <div class="input-group count-selector">
         <div class="counter-value"  ng-class="{'not-empty':x.counter > 1 }" > {{x.counter}} <span></span></div>
         <span class="input-group-btn">
         <button class="btn btn-warning" ng-click="productController.counterInc($index);">+</button>
         </span>
      </div>
   </div>
</div>


var order = angular.module('order', []);

order.controller('MainController', function () {});

order.directive('productCard', function(){
    return {
        restrict: 'E',
        templateUrl: 'product-card.html'
    };    
});

order.controller('ProductController', function (ProductService) {

    this.productDetails = ProductService.getDetails();

    var self = this;
    this.counterInc = function(index){
        self.productDetails[index].counter += 1;
    };
    this.counterDec = function(index){
        self.productDetails[index].counter -= 1;
    };
});

order.service('ProductService', function () {
    var productDetails = [
        {
            name : 'Пиджак',
            price: '590',
            options: {
                opt1: 'Химчистка',
                opt2: 'Отпаривание'
            },
            counter: 1
        },
        {
            name : 'Пиджак сложный',
            price: '890',
            options: {
                opt1: 'Химчистка',
                opt2: 'Отпаривание'
            },
            counter: 1
        }
    ];
    this.getDetails = function () {
        return productDetails;
    }
});

order.directive('categoriesSection', function(){
    return {
        restrict: 'E',
        templateUrl: 'categories-section.html'
    };
});

order.controller('CategoryController', function () {
    this.tab = 1;
    this.setTab = function (tabId) {
        this.tab = tabId;
    };
    this.isSet = function (tabId) {
        return this.tab === tabId;
    };
});
Ответить с цитированием