Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带有父子控制器的ng角度开关_Javascript_Angularjs_Node.js - Fatal编程技术网

Javascript 带有父子控制器的ng角度开关

Javascript 带有父子控制器的ng角度开关,javascript,angularjs,node.js,Javascript,Angularjs,Node.js,我有以下HTML <html ng-app="app" ng-csp=""> <body ng-controller="MainController" capture ng-class="view"> <div id="wrap" ng-switch="view"> <div id="login" ng-switch-when="login" ng-controller="SignInController">

我有以下HTML

<html ng-app="app" ng-csp="">
    <body ng-controller="MainController" capture ng-class="view">
     <div id="wrap" ng-switch="view">
          <div id="login" ng-switch-when="login" ng-controller="SignInController">
           my login code  
         </div>
          <div id="project" ng-switch-when="project" ng-controller="ProjectController">
           my login code  
         </div>

    </div>
    </body>
</html>
现在我的梦想不是成功。 编辑: 这里是朋克链接

当我点击登录按钮时,我想显示项目切换

有什么建议吗


谢谢,我想你弄错了。的语法为:



我想你弄错了。的语法为:


您是否尝试过:

<div id="wrap" ng-switch on="view">
您是否尝试过:

<div id="wrap" ng-switch on="view">

我的登录码
我的登录码

使用此html


我的登录码
我的登录码


使用此html

问题在于控制器之间不共享$scope。从只有一个控制器开始,这样$scope就会像您期望的那样被共享

将ExampleController更改为:

var app = angular.module("switchExample", []); 
app.controller("ExampleController", ["$scope", function($scope) {
  $scope.selection ="settings";
  $scope.signIn = function() {
    alert("click");
     $scope.selection ="project";
  }
}]);

。。。当您单击“登录”时,删除另一个控制器以及对HTML中未使用的控制器的引用将显示“hello”

问题在于,控制器之间未共享$scope。从只有一个控制器开始,这样$scope就会像您期望的那样被共享

将ExampleController更改为:

var app = angular.module("switchExample", []); 
app.controller("ExampleController", ["$scope", function($scope) {
  $scope.selection ="settings";
  $scope.signIn = function() {
    alert("click");
     $scope.selection ="project";
  }
}]);

。。。当您单击“登录”时,删除另一个控制器以及HTML中对未使用的控制器的引用将显示“hello”

请在文档页面学习该示例。这很直截了当,我传递的是t而不是$scope app.controller(“SignInController”、[“$scope”、“$http”、函数(t、$http),请在文档页学习示例。这很直截了当,我传递的是t而不是$scope app.controller(“SignInController”、[“$scope”、“$http”、函数(t、$http)你能详细说明一下“不工作”吗?有什么错误吗?你使用的是哪个版本的AngularJS?当我单击login project switch没有显示时,在我看来,你希望SignInControl和ProjectController中的$scope是相同的。好吧,它们不是。也许你可以将变量“设置”绑定到$rootScope,因为这将由两个控制器作用域继承。请提供示例……或者您可以移动signIn()对于ExampleController,所以您在相同的$scope上操作,您可以详细说明一下“不工作”吗?是否有任何错误?您使用的是哪个版本的AngularJS?当我单击login project switch(登录项目开关)时,我觉得您希望SignInController和ProjectController中的$scope是相同的。好吧,它们不是。也许吧另外,您可以将变量“settings”绑定到$rootScope,因为这将由两个控制器scope继承。请提供示例……或者您可以移动signIn()到ExampleController,以便您在工作的相同$scope上操作。如果我需要使用多个控制器,那么如何使用?可以使用$rootScope绑定需要在控制器之间共享的变量,因为控制器的$scope变量继承自$rootScope。读取正在工作的$rootScope上的文档。如果需要要使用多个控制器,那么如何使用?可以使用$rootScope绑定需要在控制器之间共享的变量,因为控制器的$scope变量继承自$rootScope。读取$rootScope上的文档
var app = angular.module("switchExample", []); 
app.controller("ExampleController", ["$scope", function($scope) {
  $scope.selection ="settings";
  $scope.signIn = function() {
    alert("click");
     $scope.selection ="project";
  }
}]);