0

我有这种情况:我有一个带有两个标签的网页。这些选项卡需要使用来自 angularjs 的 ng-view。这些选项卡的特殊之处在于它们需要在引用中使用相同的变量,例如在 c# 中引用变量(ref 关键字)。

您可以查看此演示的使用对象部分以了解我的意思: http ://plnkr.co/edit/zZfUQN?p=preview

<h3>Using object:</h3>
    <div class="example">
      <img class="mainImg" ng-src="{{mainImg.url}}" />
      <p>This is the parent scope with the main image.</p>
      <p>$scope.mainImg.url == {{mainImg.url}}</p>
      <div class="thumbs">
        <p>Thumbs generated with ng-repeat, with ng-click setting <strong>$scope.mainImg.url</strong> (click on them to see what happens):</p>
        <div class="thumbDiv" ng-repeat="img in images">
          <img class="thumb" ng-src="{{img}}" ng-click="mainImg.url = img" />
          <p>This is a child scope generated by ng-repeat.</p>
          <p>$scope.mainImg.url == {{mainImg.url}}</p>
        </div>
      </div>
    </div>

因此,主页是主容器,选项卡是子容器。如何在这些孩子之间保留一个变量作为参考,以便在孩子之间使用相同的值。

- 编辑

我忘了提一些非常重要的事情:引用变量可以由孩子修改,并且需要在其他孩子之间保留该值。感谢您的帮助,

卡琳娜

4

1 回答 1

1

我想你追求的是$rootScope. 范围也继承,因此如果您在父范围中定义了某些内容并且没有在子范围中覆盖它,则可以访问它。

function MainController($scope, $rootScope) {
    $rootScope.sharedVar = 'Hello';
}

function Child1Controller($scope, $rootScope) {
    //access $rootScope.sharedVar;
}

function Child2Controller($scope, $rootScope) {
    //access $rootScope.sharedVar;
}

正如 Anthony Chu 提到的那样编辑,您还可以创建一个服务并将其注入到任何需要共享值的控制器中。

于 2014-11-05T22:03:29.127 回答