修改子控制器AngularJS 1.x中父控制器的变量

时间:2017-01-05 06:36:46

标签: javascript angularjs angularjs-scope

我的身体由$(".select").select2();控制。在体内,我有另一个嵌套控制器。在我的$("#select").select2();中,我有一个由嵌套控制器控制的MainController元素:

的index.html

index.html

MainController:

div

的LoginController

<body ng-controller="MainController">
  <div ng-controller="LoginController" ng-hide="isLoggedIn"></div>
  <div class="navbar" ng-hide="!isLoggedIn">
    <!-- A form which calls login() function inside LoginController -->
  </div>
</body>

我想要做的就是从嵌套控制器中更改angular.module('DemoApp') .controller('MainController', ['$scope', function ($scope) { $scope.isLoggedIn = false; }]); 的变量angular.module('DemoApp') .controller('LoginController', ['$scope', '$location', function ($scope, $location) { $scope.login = function () { if($scope.loginCredentials.username === 'username' && $scope.loginCredentials.password === 'password') { $scope.parent.isLoggedIn = true; /* here, how to modify this variable */ $location.path('/home'); } }; }]); 。我使用了MainController,但它显示了isLoggedIn。怎么做到这一点?

1 个答案:

答案 0 :(得分:2)

您需要使用$scope.$parent.isLoggedIn = true; 来获取父控制器范围,然后才能访问各种方法和属性。

     function getInvoice($conn,$uid,$id,$invoice_no)
        {



       echo "something";


        ob_start();
        ?>
    $content='<html>

    <body style="padding-top: 0px">
    <page>
    my html content                 
    </page><body><?php echo "something"?;></body><html>'



    <?php


    $content .= ob_get_clean();
  }

    ?>