2015-05-24 6 views
0

Хорошо, таким образом у меня есть массив продуктов в FirebaseAngularJS одного обновления элемента с помощью кнопки

products 
-JpzIlrpRfXzx5HbZMw_ 
    description: 'The description to the product' 
    image: 'The link to the product image' 
    likes: '0' 
    price: '15' 
    title: 'The product title 

И я хотел добавить кнопку «Like» для каждого продукта. При каждом нажатии кнопки необходимо увеличивать значение, указанное выше, на единицу.

Я понял, как это сделать с помощью ввода, где вы вводите подобное, но это не очень дружелюбно.

<input type="text" ng-model="product.likes" ng-change="products.$save(product)"/> 

Как я могу изменить ввод на кнопку? Это при нажатии приращений продукты, такие как целое число на 1.

+0

Вы должны использовать [сделки] (https://www.firebase.com/docs/web/guide/saving-data.html#section-transactions) для увеличения ваш счетчик или параллельные изменения будут проблематичными. – Kato

ответ

1

В функции просто увеличиваем product.likes один и разместить свой объект продукта обратно в БД

DEMO

<button type="button" ng-click="products.$save(product)">Save </button> 
<p>{{product.likes}}</p> 

JS:

$scope.products = { 
     $save : function(product) { 
      product.likes += 1; 
      //post your product 
     } 
    } 
1

Должно быть довольно прямолинейно:

<input type="button" ng-click="product.likes += 1; products.$save(product);"/> 

Примечание: Я хотел бы предложить вам, чтобы извлечь его в функцию

+0

Это приводит к синтаксической ошибке? https://docs.angularjs.org/error/$parse/syntax?p0= – moevans

Смежные вопросы