Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.04.2017, 15:43
Интересующийся
Отправить личное сообщение для vanyabb Посмотреть профиль Найти все сообщения от vanyabb
 
Регистрация: 03.04.2017
Сообщений: 12

Как запретить добавление одинаковых значений в массив объектов ?
Как запретить добавление одинаковых значений в массив объектов ?




<!DOCTYPE html>
<html ng-app="app">

<head>
<title>Tony's Pizza</title>
<meta charset="utf-8">
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>

<body ng-controller="menuController">
<div class="container">
<h1>Tony's Pizza</h1>

<div>
<label><input type="radio" name="category" ng-click="changeMainDish('Cheese Pizza ',11.99)"/> Cheese Pizza</label>
</div>

<div>
<label><input type="radio" name="category" ng-click="changeMainDish('Pepperoni Pizza ',15.55)"/> Pepperoni Pizza</label>
</div>

<div>
<label><input type="radio" name="category" ng-click="changeMainDish('Margherita Pizza ',11.22)"/> Margherita Pizza</label>
</div>

<div>
<label><input type="radio" name="category" ng-click="changeMainDish('BBQ Chicken Pizza ',12.55)"/> BBQ Chicken Pizza</label>
</div>

<div>
<label><input type="radio" name="category" ng-click="changeMainDish('Combo Pizza ',12.55)"/> Combo Pizza</label>
</div>

<br>


<div ng-repeat="x in list">
<span ng-click="addTopping(x.titlex, x.descriptx)">{{ x.titlex }}{{ (x.descriptx) }}</span>
</div>

<h3 ng-show="model.toppings.length > 0">Selected Toppings</h3>
<div ng-repeat="t in model.toppings">
{{t.titley}}{{t.descripty}}<span ng-click="removeItem($index)" class="glyphicon glyphicon-remove"></span>
</div>

</div>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js"></script>
<script>
var app = angular.module('app', []);
app.controller("menuController", [
"$scope",
function($scope) {
$scope.model = { title: "", toppings: []};
$scope.changeMainDish = function(name, price) {
$scope.list=[];
$scope.list.push({ titlex: name, descriptx: price });


};


$scope.addTopping = function (titl, desc){

$scope.model.toppings.push({ titley: titl, descripty: desc });



}

$scope.removeItem = function (x) {
$scope.model.toppings.splice(x, 1);

}

}


]);

</script>

</body>

</html>

Пробовал сделать методом
if (~$scope.model.toppings.indexOf(topping)) return;
не получилось, помогите разобраться !

Последний раз редактировалось vanyabb, 03.04.2017 в 15:54.
Ответить с цитированием
  #2 (permalink)  
Старый 03.04.2017, 15:58
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,218

Сообщение от vanyabb
Как запретить добавление одинаковых значений в массив объектов ?
Брать значения... Проверять есть ли такие в массиве...
Если есть - не добавлять.
Ответить с цитированием
  #3 (permalink)  
Старый 03.04.2017, 16:00
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,218

Сообщение от vanyabb
Пробовал сделать методом
if (~$scope.model.toppings.indexOf(topping)) return;

не получилось
Конечно не получится!
У тебя ведь массив объектов.
Сообщение от vanyabb
$scope.model.toppings.push(*!*{ titley: titl, descripty: desc }*/!*);
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление данных в многомерный массив rneft Элементы интерфейса 11 28.03.2016 17:56
Htaccess, как запретить доступ ко всем кроме нескольких файлов eddin Серверные языки и технологии 8 18.02.2016 19:32
Как можно методом ajax вернуть ассоциативный массив js? Hurray AJAX и COMET 2 09.01.2016 00:19
Как передать в переменную массив значений из INPUT тега kapustnik Общие вопросы Javascript 3 19.04.2013 10:46
Как получить javasript массив из php? dima_tr AJAX и COMET 6 01.02.2013 03:37