#javascript #angular
#javascript #угловой
Вопрос:
Возможно ли иметь условие внутри условия для [disabled]
атрибута?
Это моя попытка сделать то, что я пытаюсь сделать для кнопки:
[disabled]="(second.checkoutHasSupplies() || !second.confirmed) amp;amp; (!second.confirmedPickUp || !confirmed)"
Я хочу, чтобы кнопка была отключена:
- если
second.confirmedPickUp
не подтверждено - если
confirmed
не подтверждено - и тогда только если
second.checkoutHasSupplies()
значение true, тогда ifsecond.confirmed
не подтверждается
Я могу заставить работать числа 1 и 2 в приведенном выше списке, но, похоже, я не могу понять, как выполнить номер 3. Как вы можете видеть в моем коде выше, я пытался (second.checkoutHasSupples() || !second.confirmed)
, но это не работает.
Также я уверен, что это понятно, но просто для пояснения, у меня есть second.
перед некоторым кодом, потому что я извлекаю данные из другого компонента. Однако строка, которая находится только !confirmed
внутри этого компонента, с которым я пытаюсь это сделать.
Я действительно не уверен, как этого добиться. Любые пошаговые руководства будут оценены! Спасибо!
Ответ №1:
Ваше условие должно быть:
[disabled]="(second.checkoutHasSupplies() amp;amp; !second.confirmed) || !second.confirmedPickUp || !confirmed"
Но, может быть, ваша вторая функция.checkoutHasSupplies() возвращает false при монтировании компонента … есть ли в этой функции вызов Ajax?
Вы должны заменить second.checkoutHasSupplies() переменной типа «hasSupplies» и установить для нее значение «true» по умолчанию или false, а затем обновить эту переменную «hasSupplies», когда second.checkoutHasSupplies() возвращает другое значение.
Ответ №2:
Итак, как сказал Бенджамин до меня, вы хотите, чтобы ваше условие было [disabled]="(second.checkoutHasSupplies() amp;amp; !second.confirmed) || !second.confirmedPickUp || !confirmed"
Однако вы должны знать — очень плохая практика иметь вызов функции в HTML с точки зрения производительности — поскольку это то, что нужно будет запускать для переоценки каждый раз.
Если ваша функция чистая, лучшим решением, чем вызов функции, является вызов канала. Если ваша функция нечиста, лучше привязать HTML-код к свойству и вызвать функцию и обновить свойство другим способом, чем привязка непосредственно к вашему HTML