Здравствуйте! Уже давно начал изучать Angular и почти доделал для интернет магазина подсчета стоимости товаров в корзине! Но он ещё не работает. Уже давно мучаюсь и не пойму где копать. Т.е. мне действительно нужен специалист по вопросам Angular. Даю ссылки на то что нужно сделать и то что у меня уже есть:
Вот пример на jQuery, как нужно.
http://jsjq.ru/plugins/jquery.tableprice/index.html
И пример того, что у меня получается на ангуляр:
http://kalinka-shop.kz/store/cart
Чтобы попасть в корзину, нужно пройти регистрацию. Затем попробуйте добавить пару-тройку товаров в корзину и из самой корзины изменить количество товаров. Собственно сразу и увидите проблему.
А вот мой рабочий код Angular:
(function() {
'use strict';
// script.js
// create the module and name it scotchApp
var cartApp = angular.module('cart', [], function($interpolateProvider) {
$interpolateProvider.startSymbol('<%');
$interpolateProvider.endSymbol('%>');
});
cartApp.factory('Data', function($scope, Data) {
$scope.data = Data;
});
cartApp.directive("cartone", function() {
return {
restrict: "A",
scope: {
},
controller: function($scope, $rootScope) {
$rootScope.$on('rootScope.emit', function() {
console.log('cartone - rootScope - rootScope.emit');
$rootScope.total.total = $rootScope.quantity.quantity * $rootScope.price.price;
console.log($rootScope.total.total);
});
},
link: function(scope, element) {
element.bind("click", function() {
});
}
};
});
cartApp.directive("quantity", function() {
return {
restrict: "A",
scope: {
},
controller: function($scope, $rootScope) {
$scope.goEvents = function() {
$rootScope.quantity = $scope.data;
console.log($rootScope.quantity);
$rootScope.$emit('rootScope.emit');
};
},
link: function($scope, element, attrs, total) {
element.bind("change", function() {
//console.log($scope.quantity);
$scope.goEvents();
});
}
};
});
cartApp.directive("price", function() {
return {
restrict: "A",
scope: {
},
controller: function($scope, $rootScope) {
$rootScope.$on('rootScope.emit', function() {
$rootScope.price = $scope.data;
console.log($rootScope.price);
console.log('priceCtrl - rootScope - rootScope.emit');
});
},
link: function(scope, element) {
element.bind("click", function() {
});
}
};
});
cartApp.directive("total", function() {
return {
restrict: "A",
scope: {
},
controller: function($scope, $rootScope) {
$rootScope.$on('rootScope.emit', function() {
$rootScope.total = $scope.data;
console.log($rootScope.total);
console.log('totalCtrl - rootScope - rootScope.emit');
});
},
link: function($rootScope, element) {
element.bind("click", function() {
});
}
};
});
})();
Т.е. мне нужно чтобы цена товара умножалась на количество, которое в свою очередь можно менять из самой корзины, и итог выводился в двух столбцах: 1.Промежуточный итог 2. Общая стоимость.
Сайт написан на php Laravel 4. Все товары выводятся в цикле @foreach.
Очень нуждаюсь в помощи.Спасибо!