В приложении для запуска углового материала «UserController» определяется без ввода услуги $ scope.
Таким образом, в функции конструктора, переменные создаются в качестве свойств этого объекта:
function UserController(userService, $mdSidenav, $mdBottomSheet, $timeout, $log)
{
var self = this;
self.selected = null;
self.users = [ ];
self.selectUser = selectUser;
self.toggleList = toggleUsersList;
self.makeContact = makeContact;
Но тогда, в функции self.selectUser, значение из массива self.users ссылается в $ рамки .users
function selectUser (user) {
self.selected = angular.isNumber(user) ? $scope.users[user] : user;
}
Он работает, хотя $ scope никогда не вводили. И если я изменю его на self.users, также работает.
Является ли $ scope неявно введенным в каждом угловом контроллере? Автоматически ли он зеркалирует этот объект в функции конструктора контроллера?
Что происходит?
Вот код https://github.com/angular/material-start
У вас есть где-нибудь еще в вашем коде, где вы задаете $ scope.users? Является ли код когда-либо ударяющим, если условие правдоподобного блока? – joncodo
Вы пытались запустить приложение? – user1620220
Я сомневаюсь, что ваш код не дает такого сообщения, как «ReferenceError:' $ scope' не определен »... – developer033