in angular material starter app, 'usercontroller' defined without injecting $scope service.
so in constructor function, variables created properties of object:
function usercontroller( userservice, $mdsidenav, $mdbottomsheet, $timeout, $log ) { var self = this; self.selected = null; self.users = [ ]; self.selectuser = selectuser; self.togglelist = toggleuserslist; self.makecontact = makecontact;
but then, in self.selectuser function, value of array self.users referenced $scope.users
function selectuser ( user ) { self.selected = angular.isnumber(user) ? $scope.users[user] : user; }
it works though $scope never injected. , if change self.users, works well.
is $scope implicitly injected in every angular controller? automatically mirror object in controller constructor function?
what's going on?
here's code https://github.com/angular/material-start
i cloned repo , tested it's not working saying .$scope not defined error. have inject constructor work no not automatically injected need pass $scope argument controller use otherwise should error $scope undefined can giving conditions in selecteduser function , never come $scope in order react on that.
function usercontroller( userservice, $mdsidenav, $mdbottomsheet, $timeout, $log , $scope) { } function selectuser ( user ) { //try change line , run code , select user error self.selected = angular.isnumber(1) ? $scope.users[user] : user; console.log($scope) //$scope undefine }
Comments
Post a Comment