Как правильно использовать нулевые/необязательные значения в Dexie JS?Javascript

Форум по Javascript
Ответить
Anonymous
 Как правильно использовать нулевые/необязательные значения в Dexie JS?

Сообщение Anonymous »

Я прошу прощения, если название немного расплывчато, так как трудно объяснить только в одном коротком предложении, но вот что я пытаюсь сделать: < /p>
В Angular 17 с Dexiejs, у меня есть следующий объект: < /p>

Код: Выделить всё

export interface IView {
x?: number,
y?: number,
z?: number,
id: string,
name?: string,
}
< /code>
Координаты и имя необязательны, потому что, хотя они мне понадобятся, они недоступны из каждой части приложения. < /p>
Для базы данных у меня есть следующее: < /p>
export class MyDB extends Dexie {
viewDatabase!: Table;
constructor() {
super('database');
this.version(1).stores({
viewDatabase: 'id',
});
}
}
export const db = new MyDB();
И у меня есть следующие функции get/set в другом классе:

Код: Выделить всё

async getView(id: string) {
return db.viewDatabase
.where('id')
.equals(id)
.first((data) => {
return data;
});
}

async addOrUpdateView(view: IView) {
return db.viewDatabase.put(view);
}
И, наконец, это то, чего я пытаюсь достичь:
Поскольку некоторые значения в iview являются необязательными, я хочу, чтобы база данных не было . Вместо этого я хочу, чтобы он обнаружил, есть ли уже значения для дополнительных переменных, и если да, просто держите их и добавьте новые вещи сверху. То есть, если я инициализации следующего в базе данных: < /p>
{
x: 1,
y: 2,
z: 3,
id: '109210abc',
name: 'test'
}
< /code>
, а затем я передаю следующее значение в базу данных, которая имеет одинаковый идентификатор (потому что я хочу перезаписать значения): < /p>
{
x: 5,
id: '109210abc',
name: 'test_updated'
}
< /code>
Я хочу, чтобы база данных сохранила исходные значения для Y и Z, потому что они не были изменены. Я не хочу, чтобы они автоматически устанавливались в неопределенные или нулевые. Я хочу, чтобы только X и имя изменилось, поскольку это единственные значения, которые изменились. Есть ли способ сделать это автоматически или, по крайней мере, более эффективно? Я ищу решение, которое позволяет мне сохранять значения как необязательные, если возможно.

Подробнее здесь: https://stackoverflow.com/questions/795 ... n-dexie-js
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»