Я думаю, что ваша проблема в том, что вы ищете сравнение строк, но undefined в Javascript не является строкой.
Это означает, что ваш чек:
if ($scope.emailNames != "undefined")
Проходит, затем вы объединяете $ scope.emailNames с новой строкой, которая преобразует значение undefined в версию строки истории: "undefined" , которую вынайдите в своей консоли вывод.
Чтобы продемонстрировать, что попробуйте этот код:
var x;
var y = x + "some new string";
console.log(y);
Вы получили:
неопределенная новая строка
Чтобы решить эту проблему, вам нужно исправить оператор if :
if ($scope.emailNames !== undefined)
Обратите внимание, что я использовал ! == , чтобы проверить, если $ scope.emailNames также относятся к тому же типу.
Это означает, что если у вас будет нулевое значение, оно снова завершится неудачно, и вы найдете в своем журнале новую строку .
В таком случае просто используйте ! = только с 1 равным, который учитывает значения null точно так же, как undefined .