Как разделить $scope между контроллерами с AngularJs, можем ли мы получить доступ к $scope одного контроллера с другого контроллера?
Мы можем получить доступ к области видимости одного контроллера от другого контроллера? Мне нужно получить все данные в родительском, дочернем и внуковом контроллере, возможно ли это
Вот мой сценарий
var app = angular.module('myApp', []);
app.controller('ParentController',ParentController);
function ParentController($scope)
{
$scope.parentName="Parent"
}
app.controller('ChildController1',ChildController1);
function ChildController1($scope)
{
$scope.childName1="Child1"
}
app.controller('ChildController2',ChildController2)
function ChildController2($scope)
{
$scope.childName2="Child2"
}
app.controller('GrandChildController1',GrandChildController1);
function GrandChildController1($scope)
{
$scope.grandChildName1="GrandChild1"
}
Вот мой вид кода
<div> ng-app="myApp">
<div ng-controller="ParentController">
Parent:{{parentName}}
Child1:{{childName1}}
Child2:{{childName2}}
GrandChild1:{{grandChildName1}}
<div ng-controller="ChildController1">
Parent:{{parentName}}
Child1:{{childName1}}
Child2:{{childName2}}
GrandChild1:{{grandChildName1}}
<div ng-controller="GrandChildController1">
Parent:{{parentName}}
Child1:{{childName1}}
Child2:{{childName2}}
GrandChild1:{{grandChildName1}}
</div>
</div>
<div ng-controller="ChildController2">
Parent:{{parentName}}
Child1:{{childName1}}
Child2:{{childName2}}
GrandChild1:{{grandChildName1}}
</div>
</div>
</div>
Я не получил дочернюю область в родительском контроллере. Что я буду делать. Напишите какой-либо сервис или что-то еще. Спасибо
1 ответ
Взгляните на этот урок, он короткий и очень хорошо объясняет это.
Просто $scope
наследование возможно путем вложения контроллеров в ваше представление
<div ng-controller="a">
{{num}}
<div ng-controller="b">
{{num}}
</div>
</div>
app.controller('a', a);
function a($scope) {
$scope.num = 1
}
app.controller('b', b);
function b($scope) {
//$scope.num is inherited by the parent controller
}
Вы также можете всегда использовать $ rootScope для передачи данных между контроллерами, обычно используя $broadcast
а также $emit
диспетчеры.