Я пытаюсь разработать страницу продукта для веб-сайта электронной коммерции. Я использую angularjs ng-repeat для отображения списка продуктов. Я пробовал $ scope. $ Apply (), он выдает ошибку, как в процессе дайджеста. У меня тоже есть $ rootcope.
Единственное представление не обновляется, но когда я проверил в консоли, оно обновляется.
Вот мой код:
html
<a ng-click="addcolors('RED')">Red<i class="fa fa-plus"></i></a>
<a ng-click="addcolors('WHITE')">Red<i class="fa fa-plus"></i></a>
<div class="col-sm-4 col-xs-12" data-ng-repeat="products in products" >
<div class="productBox">
<div class="productImage clearfix">
<img ng-src="{{products.image}}" alt="products-img" ">
<div class="productMasking">
<ul class="list-inline btn-group" role="group">
<li><a data-toggle="modal" href=".login-modal" class="btn btn-default"><i class="fa fa-heart"></i></a></li>
<li><a href="cart-page.html" class="btn btn-default"><i class="fa fa-shopping-cart"></i></a></li>
<li><a class="btn btn-default" data-toggle="modal" href=".quick-view"><i class="fa fa-eye"></i></a></li>
</ul>
</div>
</div>
<div class="productCaption clearfix">
<a href="single-product.html">
<h5>{{products.productname}}</h5>
</a>
<h3>{{products.Price}}</h3>
</div>
</div>
</div>
Js
$scope.selectedcolors = ["red"];
$scope.addcolors = function (color) {
// here i add the colors to the array
$scope.loadfiltereddata();
}
$scope.loadfiltereddata = function () {
$scope.products = [];
$scope.products.length = 0;
console.log($scope.products);
$scope.just = [];
var productuniqueidpristine = "";
var productuniqueidstored = "";
var r = 0;
var productvariants = {};
var obj = {}
var m = 0;
$scope.colors = [];
$scope.resultArray = [];
for (var i = 0; i < $scope.mainproductsdata.length; i++) {
var index = functiontofindIndexByKeyValue($scope.mainproductsdata, "ColorName", $scope.mainproductsdata[i].ColorName);
if ((index != null)||($scope.selectedcolors.length<1)) {
var productuniqueidpristine = $scope.mainproductsdata[i].productuniqueid;
var productuniqueidstored = $scope.mainproductsdata.filter(function (value) { return value.productuniqueid === productuniqueidpristine }).length;
m = r + 1;
if (m < productuniqueidstored) {
var productvariants = {
uniqueid: $scope.mainproductsdata[i].UniqueID,
colorname: $scope.mainproductsdata[i].ColorName,
colorcode: $scope.mainproductsdata[i].ColorCode,
sizename: $scope.mainproductsdata[i].SizeName
}
$scope.just.push(productvariants);
// $scope.just.push(productvariants);
r++;
}
else if (m == productuniqueidstored) {
var productvariants = {
uniqueid: $scope.mainproductsdata[i].UniqueID,
colorname: $scope.mainproductsdata[i].ColorName,
colorcode: $scope.mainproductsdata[i].ColorCode,
sizename: $scope.mainproductsdata[i].SizeName
}
$scope.just.push(productvariants);
var obj = {
id: $scope.mainproductsdata[i].id,
productname: $scope.mainproductsdata[i].productname,
image: $scope.mainproductsdata[i].productimage,
price: $scope.mainproductsdata[i].Price,
variants: $scope.just
};
$scope.products.push(obj);
r = 0;
$scope.just = [];
}
}
}
}