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

ng-click для конкретного товара
Здрасте, такая проблемка, кликаю на

<button class="btn btn-warning" ng-click="productController.counter(1);">+</button>


и количество суммируеться во всех продуктах, а надо только в том по котором клинул, спасибо.
(удалил некоторый html чтоб укоротить)


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


ProductCard:

<div class="product-card">
        <div class="row product-content">
            <div class="col-sm-9 col-xs-8">
                <div class="row">
                    <div class="col-sm-8 col-xs-12">
                        <h2 class="product-title">{{x.name}}</h2>
                        <p class="product-description"></p>
                        <ul>
                            <li class="product-description"><i class="fa fa-check"></i> {{x.options.opt1}}</li>
                        </ul>
                    </div>
                    <div class="col-sm-4 col-xs-12">
                        <div class="row">
                            <div class="col-sm-12 col-xs-6">
                                <div class="input-group count-selector">
                                    <div class="counter-value"> {{productController.count}} <span></span></div>
                                    <span class="input-group-btn"><button class="btn btn-warning" ng-click="productController.counter(1);">+</button></span>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>


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

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

order.controller('ProductController', function (ProductService) {
    this.productDetails = ProductService.getDetails();

    this.count = 1;
    this.counter = function(x){
        this.count += x;
    }

});

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