В Angular 9, при установке формы в локальное хранилище, как мне указать, что определенные параметры НЕ сохраняются? - PullRequest
0 голосов
/ 05 августа 2020

Вот мой код:

@Effect({ dispatch: false })
    persistForm = this.actions$.pipe(
    ofType<ActionLoginFormUpdate>(LoginFormActionTypes.UPDATE),
    distinctUntilChanged((x, y) => JSON.stringify(x) === JSON.stringify(y)),
    tap(action => {
        this.localStorageService.setItem(LOGIN_FORM_KEY, { form: action.login.loginForm })
    })
);

login.loginForm содержит имя пользователя и пароль. Я не хочу, чтобы он сохранял пароль, только имя пользователя. Как мне сделать так, чтобы он сохранял только имя пользователя?

Ответы [ 2 ]

1 голос
/ 05 августа 2020

Вы можете использовать оператор спреда для достижения этой попытки под кодом:

const {password,...rest} = action.login.loginForm;

это назначит свойство пароля, а rest будет заполнено остальными параметрами. А затем вы можете назначить свою форму следующим образом:

this.localStorageService.setItem(LOGIN_FORM_KEY, { form: rest})
0 голосов
/ 05 августа 2020

Привет, ваш вопрос не angular specifici c Чтобы удалить определенные свойства из объекта, вы можете использовать ключевое слово delete в javascript.

Пример для вашего случая https://www.w3schools.com/howto/howto_js_remove_property_object.asp

Вам необходимо вручную удалить каждое свойство из объекта, который вы не хотите сохранять

...