angular 控制器作为 parent 控制器中的监视变量
angular controller as watch variable in parent controller
如何查看绑定到 parent 控制器的变量?
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);
});
}
watch-Function 无法识别 parent 标题上的更改..
谢谢! :)
引用属于父对象的对象时,只需访问 $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 () { };
如何查看绑定到 parent 控制器的变量?
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);
});
}
watch-Function 无法识别 parent 标题上的更改..
谢谢! :)
引用属于父对象的对象时,只需访问 $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 () { };