Я проверяю пользовательский интерфейс Angular Bootstrap, особенно сервис $modal
и заметил интересную вещь.Зачем нужен дополнительный объект?
В своей выборке здесь «http://plnkr.co/edit/E5xYKPQwYtsLJUa6FxWt?p=preview» в контроллере, который привязывается к всплывающем окне они подложили выбранный элемент в другой внутреннее свойство
$scope.selected = {
item: $scope.items[0]
};
вместо того, чтобы просто
$scope.selected = $scope.items[0];
и действительно, их код работает так, как ожидалось, пока моя версия не работает.
Зачем это необходимо? Что такое JavaScript здесь?
Thx
Я собираюсь взять удар и предположить, что он имеет какое-то отношение к '$ scope.selected', ссылаясь на' $ scope.items [0] 'в вашем примере и став его собственным объектом со значением внутри него в их пример. Хотя я не на 100%, поэтому надеюсь, что вы получите лучший ответ, чем это. – Shaded
Из-за наследования прототипа. См. [Каковы нюансы объема прототипа/прототипного наследования в AngularJS?] (Http://stackoverflow.com/questions/14049480/what-are-the-nuances-of-scope-prototypal-prototypical-inheritance-in-angularjs). – Stewie
Проверьте [эту статью] (https://github.com/angular/angular.js/wiki/Understanding-Scopes). – raina77ow