作为父控制器中的监视变量的角度控制器

我如何看一个变量,即绑定到父控制器?作为父控制器中的监视变量的角度控制器

function config($stateProvider) { 

$stateProvider

.state('home', {

url: '/',

templateUrl: 'home.html',

controller: 'HomeController',

controllerAs: 'vm'

})

.state('home.child', {

url: '/child',

templateUrl: 'child.html',

controller: 'ChildController',

controllerAs: 'vm'

});

}

function HomeController($scope) {

this.title = 'Some Title';

}

function ChildController($scope) {

var vm = this;

$scope.$watch('vm.title', function(current, original) {

$log.info('title was %s', original);

$log.info('title is now %s', current);

});

}

的手表功能不认父称号的变化..

的感谢! :)

回答:

引用属于父级的对象时,只需访问$parent范围。也习惯于更清洁和更标准的方式来构建你的控制器JS。

HTML

<html ng-app="myApp"> 

<body>

<div ng-controller="HomeController">

<input type="text" ng-model="title">

<div ng-controller="ChildController"></div>

</div>

</body>

</html>

JS

var app = angular.module("myApp", []); 

app.controller("HomeController", ['$scope', '$log', function ($scope, $log) {

$scope.title = "Some Title";

}]);

app.controller("ChildController", ['$scope', '$log', function ($scope, $log){

$scope.$watch('$parent.title', function(newValue, oldValue) {

$log.info('title was %s', oldValue);

$log.info('title is now %s', newValue);

});

}]);

回答:

父控制器:

$scope.cancelFlag = false; 

儿童控制器:

1)$parent.cancelFlag指父控制器。 2)如果我们在父控制器中做任何更改,watch将在子控制器中被调用。

实施例:

$scope.cancelFlag = true or false; 

3)在这里,我们可通过使在父控制器更改调用子控制器的方法。

 $scope.$watch('$parent.cancelFlag', 

function (newVal, oldVal)

{

if (newVal != null && newVal==true)

$scope.childControllerMethod();

});

$scope.childControllerMethod= function() { };

以上是 作为父控制器中的监视变量的角度控制器 的全部内容, 来源链接: utcz.com/qa/261475.html

回到顶部