In der Angular Material Starter App wird ein 'UserController' definiert, ohne den $ scope-Service zu injizieren.
So im Konstruktor Funktion werden Variablen als Eigenschaften des dieses Objekts erstellt:
function UserController(userService, $mdSidenav, $mdBottomSheet, $timeout, $log)
{
var self = this;
self.selected = null;
self.users = [ ];
self.selectUser = selectUser;
self.toggleList = toggleUsersList;
self.makeContact = makeContact;
Aber dann, in der self.selectUser Funktion, der Wert der Array self.users als $ scope verwiesen .users
Es funktioniert, obwohl $ scope nie injiziert wurde. Und wenn ich es zu self.users ändere, funktioniert das auch.
Wird $ scope implizit in jeden Winkel-Controller injiziert? Spiegelt es das Objekt in einer Controller-Konstruktor-Funktion automatisch?
Was ist los?
Hier ist der Code https://github.com/angular/material-start
Haben Sie irgendwo anders in Ihrem Code, wo Sie $ scope.users einstellen? Kommt der Code jemals in Frage, wenn die Bedingung truthy blockieren? – joncodo
Haben Sie versucht, die App auszuführen? – user1620220
Ich bezweifle, dass Ihr Code eine Nachricht wie "ReferenceError:' $ Scope "ist nicht definiert" ... – developer033