Подтвердить что ты не робот

Получение объекта $scope в методе Angular run()

Я хотел бы сделать некоторые вещи, когда мое приложение загружается, чтобы настроить состояние по умолчанию. Поэтому я пытаюсь использовать метод run для объекта Module. Когда я пытаюсь получить доступ к переменной $scope, хотя я получаю сообщение "Uncaught ReferenceError: $scope is not defined" в моей консоли.

См. следующий пример http://jsfiddle.net/F2Z2X/1/

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

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

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

Неужели я все это неправильно делаю?

Например, я хочу запустить функцию watchAction один раз в начале, чтобы скрыть элементы пользовательского интерфейса, которые еще не вызваны, но функция watchAction не имеет объекта $scope, потому что она не вызывается часами метод, поэтому я должен передать его ему, но, увы, он недоступен.

4b9b3361

Ответ 1

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

Вы можете получить только $rootScope в функции services и run, потому что каждый child scope наследуется от своей родительской области, а область верхнего уровня rootScope. Так как было бы амбициозно вводить любую область. Предоставляется только корневая область.

Ответ 2

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;
}  

для Eg. https://github.com/shekkar/ng-book/blob/master/7_beginning-directives/current-scope-introduction.html

Это простой поток, у нас есть rootScope, parentScope, childScope. В каждом разделе мы назначаем соответствующие переменные сферы. Мы можем получить доступ к $rootScope в parentScope, rootScope и parentScope в childScope.