37

アプリがロードされてデフォルト状態を設定するときに、いくつかのことをしたいと思います。そのため、Module オブジェクトで run メソッドを使用しようとしています。$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))
);

私はこれについてすべて間違っていますか?

たとえば、まだ呼び出されていない UI 要素を非表示にするために、watchAction 関数を最初に 1 回実行したいのですが、watchAction 関数には $scope オブジェクトがありません。これは、watch メソッドによって呼び出されていないためです。それに渡す必要がありますが、残念ながら利用できません。

4

2 に答える 2

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

例えば。https://github.com/shekkar/ng-book/blob/master/7_beginning-directives/current-scope-in​​troduction.html

これは単純なフローです。rootScope、parentScope、childScope があります。各セクションで、対応するスコープ変数を割り当てます。parentScope の $rootScope、rootScope および childScope の parentScope にアクセスできます。

于 2014-05-28T13:06:37.527 に答える