Я следую руководству, и мне трудно понять определенное предложение, в котором говорится о проблеме, которая может возникнуть при присвоении имен моим свойствам в Angular:

Он спокойно переносит все ошибки доступа к свойствам, включая вложенные свойства на несуществующих родительских элементах и ​​доступ к массиву за пределами границ.

псевдонимы переменных как способ справиться с затенением переменных

• 100001 Я провел небольшое исследование, но ничего не понял.

Может ли кто-нибудь дать мне четкое объяснение?

Ответы (1)

Допустим, у вас есть:

obj : { 
    first: {
        second: [1, 2, 3]
    }
}

Пытаюсь сделать это:

obj.nonexistent.prop // Nested property on nonexistent parent
obj.first.second[1000] // Out of bound array access

Выдает ошибку в javascript, но Angular не выдает ошибку

Что касается псевдонимов переменных как способа справиться с затенением переменных, представьте себе следующее:

{{outerCount + 1}}. {{item.name}}
{{outerCount + 1}}.{{$index + 1}}. {{item.name}}

От здесь

В ng-repeat переменная $ index изменяется, чтобы указывать на текущий индекс цикла на каждой итерации. Поэтому, если у вас есть вложенные циклы, вы потеряете ссылку на внешнюю переменную $ index. Это затенение переменных. Чтобы использовать внешнюю переменную, вы можете использовать ng-init и установить для нее значение $ index за пределами. Теперь у вас псевдоним внешней $ index переменной на outerCount.

Надеюсь, это понятно!

2022 WebDevInsider