Строки являются «специальными» объектами в Java. Разработчики Java мудро решили, что Strings используются так часто, что им нужен собственный синтаксис, а также стратегия кэширования. Когда вы объявляете строку, говоря:
String myString = "something";
myString является ссылкой на объект String со значением «something». Если вы позже объявите:
String myOtherString = "something";
Java достаточно умен, чтобы понять, что myString и myOtherString одинаковы и будут хранить их в глобальной таблице String в качестве одного и того же объекта. Он полагается на то, что вы не можете изменять Strings для этого. Это уменьшает объем требуемой памяти и ускоряет сравнение.
Если вместо этого вы напишете
String myOtherString = new String("something");
Java создаст для вас совершенно новый объект, отличный от myString объект.
Поскольку вы привязываете свой выбор к переменной компонента «StartingYear». Вам необходимо привязать значение компонента к исходному значению, которое вы хотите установить.
Если это статическое значение, используйте этот код:
StartingYear = "1";
Если оно из служебной переменной, установите его следующим образом:
StartingYear = this.data.StartingYearValue;
Вы можете установить начальное значение в компоненте:
startingyear = 1;
Переменная в вашем компоненте и представлении записываются не одинаково. Вот исправленное решение: https://stackblitz.com/edit/angular-8hx96x?file=src%2Fapp%2Fapp.component.ts