如何在AngularJS中控制台从控制器到指令控制器的更改
How to console a change from controller to directive controller in AngularJS
以下是运行良好、没有问题的代码。我唯一不能得到的就是
每当按下按钮时,我如何控制台console.log("CHECK ",vm.testvar);
。
工作Plnkr-http://plnkr.co/edit/BGdGgGaDXlKiZq2aaN00?p=preview
script.js-
var myApp = angular.module('myApp', []);
myApp.controller('mainCtrl', function($scope){
$scope.test = 'my test string from controller';
$scope.clicked = function() {
$scope.test = 'New - ' + Date.now();
};
})
myApp.directive('mydir', function(){
return {
restrict: 'E',
scope: {
testvar: '='
},
template: '<h1>Test Directive - {{vm.testvar}}</h1>',
controllerAs: 'vm',
replace: true,
bindToController: true,
controller: function () {
var vm = this;
console.log("CHECK ",vm.testvar);
}
};
})
有多种方法可以实现这一点,但最快的方法,可能也是最角度1.*-ish的方法是使用$scope.$watch
方法:
controller: function ($scope) {
var vm = this;
$scope.$watch( 'vm.testvar', function(newValue){
console.log( 'cHanged', newValue)
})
console.log("CHECK ",vm.testvar);
}
http://plnkr.co/edit/KsrG5lgmtyKSGce5HZ6F?p=preview
您可以将$scope传递给控制器,并在vm.testvar上设置一个监视。然后,每当vm.testvar发生变化时,它都会调用其函数。
controller: function (scope) {
var vm = this;
$scope.$watch('vm.testvar', function() {
console.log("CHECK ",vm.testvar);
});
}
相关文章:
- 通过指令在控制器中执行javascript函数
- angular应用程序中的浏览器功能检测:使用服务、指令、控制器
- Angular js指令使用控制器作为语法ng点击不起作用
- Angularjs指令调用控制器函数
- 如何在angular js中从指令调用控制器函数
- Angularjs将函数从控制器传递到指令(或从指令调用控制器函数)-带参数
- 如何从指令的控制器调用依赖注入服务的嵌套方法
- Angular,从指令向控制器发送信息
- 从指令调用控制器函数(使用从指令传递的参数)
- 如何从 ng-repeat(ng-repeat)中的指令访问控制器范围
- 您如何处理指令和控制器中的模板 ng-click
- 指令和控制器之间的双向通信
- AngularJS:指令中控制器的执行函数
- 指令和控制器之间的通信,中间作用域介于两者之间
- 如何从2级指令访问控制器作用域
- 从父指令或控制器中的指令名称数组呈现AngularJS指令
- AngularJS-通过服务从指令更新控制器数据(this.model语法)
- 通过Ng重复指令监视控制器中函数的输出
- AngularJS:从具有独立作用域的指令调用控制器函数
- 更新自定义指令的控制器中的$scope时,Angular.js双向绑定不起作用