2015-10-29 2 views
1

Ситуация:Установить булево на изменение объекта Parse.com

У меня есть база данных на Parse.com. В этой базе данных у меня есть объекты, у которых есть Array и boolean.

Wanted Результат:

Я хочу булево, чтобы установить истинное значение, если длина массива больше, чем 0. И ложь, если размер равен 0.

Проблема:

Я не хочу устанавливать это булево значение при добавлении/удалении из массива, но я хочу, чтобы какой-то слушатель реагировал на изменение объекта.

должн

Это решение должно быть возможно только с кодом облака.


Есть ли способ сделать это?

ответ

3

Абсолютно, и это можно сделать легко, используя cloud code beforeSave hook.

В файле beforeSave требуемого класса посмотрите размер массива и соответственно установите bool. Это гарантирует, что bool обновляется для каждого сохранения.

Вот некоторые примеры кода

// Update the boolean based on the array length 
Parse.Cloud.beforeSave("yourClass", function(request, response) { 

    var yourArray = request.object.get("yourArray"); 

    if (yourArray.length > 0) { 
     request.object.set("booleanProperty", true); 
    } else { 
     request.object.set("booleanProperty", false); 
    } 
    response.success(); 
}); 
+0

будет это также рассчитывать элемент, который я добавляю? –

+0

Это работает. Спасибо –

+0

Да, он будет считать элементы, которые вы добавили в массив, перед вызовом save – Russell