angularJS中的嵌套控制器 - 无法访问第三个控制器的第二个控制器
问题描述:
我有3个div元素和3个控制器。angularJS中的嵌套控制器 - 无法访问第三个控制器的第二个控制器
第二个控制器可以访问第一个控制器。但第三个不起作用。
var app = angular.module("app", [])
.controller("countryController", function() {
this.Name = "Turkey";
})
.controller("cityController", function() {
this.Name = "Istanbul";
})
.controller("streetController", function() {
this.Name = "Istiklal";
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="countryController as countryCtrl">
{{countryCtrl.Name}}
<div ng-controller="cityController as cityCtrl">
{{countryCtrl.Name}} - {{cityCtrl.Name}}
</div>
<div ng-controller="streetController as streetCtrl">
{{countryCtrl.Name}} - {{cityCtrl.Name}} {{streetCtrl.Name}}
</div>
</div>
答
你不能得到{{cityCtrl.Name}}
,因为它是第三个控制器的兄弟姐妹。相反,您可以使用$parent
或$rootScope
来获取该值。第二位指示内
或嵌套它:
var app = angular.module("app", [])
.controller("countryController", function() {
this.Name = "Turkey";
})
.controller("cityController", function() {
this.Name = "Istanbul";
})
.controller("streetController", function() {
this.Name = "Istiklal";
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="countryController as countryCtrl">
{{countryCtrl.Name}}
<div ng-controller="cityController as cityCtrl">
{{countryCtrl.Name}} - {{cityCtrl.Name}}
<div ng-controller="streetController as streetCtrl">
{{countryCtrl.Name}} - {{cityCtrl.Name}} {{streetCtrl.Name}}
</div>
</div><!--cityCtrl closed-->
</div>
'$ parent' ....会帮助你。 – Jai
什么不起作用? –