it-swarm.com.de

$ Scope-Objekt in Angular run () -Methode abrufen

Ich möchte einige Dinge tun, wenn meine App geladen wird, um den Standardstatus einzurichten. Daher versuche ich, die run-Methode für das Module-Objekt zu verwenden. Wenn ich versuche, auf die Variable $ scope zuzugreifen, wird in meiner Konsole die Meldung "Uncaught ReferenceError: $ scope is not defined" angezeigt.

Siehe folgendes Beispiel http://jsfiddle.net/F2Z2X/1/

app = angular.module('myapp', []);

app.controller('mycontroller', function($scope){
    $scope.data = { myvariable: 'Hello' };
});

app.run(
    alert($scope.data.myvariable))
);

Mache ich das falsch?

Zum Beispiel möchte ich die watchAction-Funktion zu Beginn einmal ausführen, um noch nicht aufgerufene UI-Elemente auszublenden. Die watchAction-Funktion verfügt jedoch nicht über das $ scope-Objekt, da sie nicht von der watch-Methode aufgerufen wird Ich muss es weitergeben, aber leider ist es nicht verfügbar.

35
Tristan
app.run(function ($rootScope) {
    $rootScope.someData = {message: "hello"};
});

Sie können nur $rootScope injiziert zu services und run Funktion, weil jeder child scope wird vom übergeordneten Bereich geerbt und der Bereich der obersten Ebene ist rootScope. Da es nicht eindeutig ist, any scope zu injizieren. Es wird nur der Stammbereich bereitgestellt.

77
Umur Kontacı
var app = angular.module('myApp', []);
app.run(function ($rootScope) {
    // use .run to access $rootScope
    $rootScope.rootProperty = 'root scope';
});

app.controller("ParentCtrl", ParentCtrlFunction);
app.controller("ChildCtrl", ChildCtrlFunction);
function ParentCtrlFunction($scope) {
    // use .controller to access properties inside ng-controller
    //in the DOM omit $scope, it is inferred based on the current controller
    $scope.parentProperty = 'parent scope';
}
function ChildCtrlFunction($scope) {
    $scope.childProperty = 'child scope';
    //just like in the DOM, we can access any of the properties in the
    //prototype chain directly from the current $scope
    $scope.fullSentenceFromChild = 'Same $scope: We can access: ' +
    $scope.rootProperty + ' and ' +
    $scope.parentProperty + ' and ' +
    $scope.childProperty;
}  

für zB. https://github.com/shekkar/ng-book/blob/master/7_beginning-directives/current-scope-introduction.html

Es ist ein einfacher Ablauf, wir haben rootScope, parentScope, childScope. In jedem Abschnitt weisen wir die entsprechenden Bereichsvariablen zu. Wir können auf $ rootScope in parentScope, rootScope und parentScope in childScope zugreifen.

3
Shekkar