2017-07-20 145 views
0

我想在角度Js的控制器内创建控制器。但我的代码不起作用。请帮助我。如何以角度js在控制器内创建控制器

控制器:下面

app.controller('MainController',function($rootScope,$scope){ 
    console.log('MainController Created'); 
    $scope.test = "Success"; 

    app.controller('InnerController',function($scope){ 
     console.log('Inside the InnerController'); 
     console.log($scope.test); 
    }) 
}); 

是我的html正文:

<body> 
    <div ng-app="myApp" ng-controller="MainController"> 
     Enter your Name : 
     <input type="text" ng-model="name" placeholder="your name"> 
     <div ng-show="name"> 
      <h2>This is called Two way binding :: {{name}}</h2> 
     </div> 
     <div ng-controller="InnerController"> 
      <h2>{{name}}</h2> 
     </div> 
    </div> 
</body> 
+0

你不能像这样创建嵌套控制器......但是你可以注入一个到另一个。 – Sankar

+0

您能否请帮我用一段代码在另一个控制器中注入一个控制器@SankarRaj –

回答

0

您不能创建另一个控制器内部的控制器。但是你可以将DOM元素与不同的控制器嵌套在一起。所以,你应该你的控制器的声明改成这样:

app.controller('MainController',function($rootScope,$scope){ 
    console.log('MainController Created'); 
    $scope.test = "Success"; 
}); 

app.controller('InnerController',function($scope){ 
    console.log('Inside the InnerController'); 
    console.log($scope.test); 
}); 

注重的是test仍处于InnerController可用。

1

你应该把你的内心控制器声明MainController之外,因为他们都需要被初始化HTML解析

app.controller('MainController',function($rootScope,$scope){ 
    console.log('MainController Created'); 
    $scope.test = "Success"; 
}); 

app.controller('InnerController',function($scope){ 
    console.log('Inside the InnerController'); 
    console.log($scope.test); 
}); 
1

之前在HTML像你这样主要是innercontroller 的父亲控制器,但在角度它是这样的控制器:

app.controller('MainController',function($rootScope,$scope){ 
    console.log('MainController Created'); 
    $scope.test = "Success"; 
}); 


app.controller('InnerController',function($scope){ 
     console.log('Inside the InnerController'); 
     console.laog($scope.test); 
    })