簡體   English   中英

AngularJs:訪問父范圍,並且我得到范圍未定義

[英]AngularJs: Access parent scope and I am getting Scope undefined

我正在嘗試訪問父范圍,但是卻收到以下錯誤:該范圍未定義。

MyApp.controller('AdminController', function ($scope, $http, $filter, $mdDialog, $window, $location, $mdToast) {

$scope.test = "Test";

}).
controller('ToastCtrl', function($scope, $mdToast, $mdDialog) {
    $scope.openMoreInfo = function(e) {
        if ( isDlgOpen ) return;
        isDlgOpen = true;

        $mdDialog
          .show($mdDialog
            .alert()
            .title($scope.$parent.test)
            .targetEvent(e)
          )
          .then(function() {
              isDlgOpen = false;
          })
    };
}); 

任何建議,為什么我會收到此錯誤。

先感謝您。

您也應該在這里發布您的視圖(至少),但是我認為您的html中有類似的內容

<div ng-controller="AdminController">
    <div ng-controller="ToastCtrl">
        <!-- openMoreInfo  called somewhere here -->
    </div>
</div>

然后,您的控制器在父作用域中尋找$scope.test變量。 您可以嘗試以這種方式使用angularjs范圍繼承

在父控制器中,更改$scope.test = "Test";

$scope.Data = {};
$scope.Data.test = "Test";

然后在子控制器中使用.title($scope.Data.test)
子控制器將嘗試訪問$scope.Data對象,但它在當前作用域中不存在,因此它將嘗試在可以找到它的$parent范圍中進行搜索。

您無法訪問該值的問題是controllers之間沒有parent-child relationship

您可以通過多種方式訪問​​它:

  1. 使用service在控制器之間進行通信。
  2. 使用發射/廣播進行通信
  3. 使用$rootscope ,但不建議這樣做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM