Угловая цель.getAttribute() проверяет условие null

#javascript #angular

Вопрос:

У меня возникли некоторые проблемы с угловым. Я пытаюсь соответственно установить другое значение. Ниже в качестве моего кода:

  console.log("JJJJJJJ "   target.getAttribute("timingId"));
        console.log("KKKKKKKKK "   target.getAttribute("index"));
        if(target.getAttribute("timingId") != null){
          console.log("INSIDE ORI SET");
          this.timingId = target.getAttribute("timingId");
        } else {
          console.log("INSIDE INDEX SET");
          this.timingId = target.getAttribute("index");
        }
        console.log("HAHAHAHAHAHAH "   this.timingId);
 

То, что я пытаюсь сделать, это проверить timindId из getAttribute (), если он не равен нулю, затем установите его. Если значение равно null, getAttribute() из другого поля, затем установите его. Моя консоль в соответствии со следующим:

 JJJJJJJ null
KKKKKKKKK 1
INSIDE ORI SET
HAHAHAHAHAHAH null
 

Я не уверен, почему, когда он будет обнаружен как null, он не войдет в оператор else и не установит значение. Есть какие-нибудь идеи?

отредактированный

 console.log(typeof target.getAttribute("timingId"));
        console.log("JJJJJJJ "   target.getAttribute("timingId"));
        console.log("KKKKKKKKK "   target.getAttribute("index"));
        if(target.getAttribute("timingId") != null || target.getAttribute("timingId") != "null"){
          console.log("INSIDE ORI SET");
          this.timingId = target.getAttribute("timingId");
        } else {
          console.log("INSIDE INDEX SET");
          this.timingId = target.getAttribute("index");
        }
        console.log("HAHAHAHAHAHAH "   this.timingId);
 

Спасибо!

Комментарии:

1. Возможно ли, что значением вашего атрибута является строка «null»?

2. @AlbertoRivera только что попытался добавить дополнительную проверку условий для строки «null», но она также не работает

3. Каков результат console.log(typeof target.getAttribute("timingId")) ?

4. @AlbertoRivera, который был распечатан как строка, но он все еще находится внутри оператора if вместо else

5. if Проверка неверна. Если timingId является строкой «null», он пройдет первую проверку и не будет оценивать вторую. Это должно быть amp;amp; вместо || . Я опубликую это в качестве своего ответа

Ответ №1:

Вы должны проверить наличие «null» в качестве строки в if операторе.

 const timingId = target.getAttribute("timingId")
if (timingId != null amp;amp; timingId !== "null") {
   this.timingId = timingId
} else {
   this.timingId = target.getAttribute("index");
}