Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 指令中ngChange事件后的控制器功能_Javascript_Angularjs - Fatal编程技术网

Javascript 指令中ngChange事件后的控制器功能

Javascript 指令中ngChange事件后的控制器功能,javascript,angularjs,Javascript,Angularjs,我发现了一些问题和示例,但它们都使用$scope,到目前为止,我的应用程序中没有使用$scope。当指令中的复选框被选中(ng change)时,我试图执行控制器函数 HTML <div ng-app="myApp" ng-controller="Controller as ctrl"> <dir-select doIt="ctrl.doIt()" object="ctrl.object"> </div> 控制器和指令 var app = a

我发现了一些问题和示例,但它们都使用$scope,到目前为止,我的应用程序中没有使用$scope。当指令中的复选框被选中(ng change)时,我试图执行控制器函数

HTML

<div ng-app="myApp" ng-controller="Controller as ctrl">
    <dir-select doIt="ctrl.doIt()" object="ctrl.object"> 
</div>

控制器和指令

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

app.controller("Controller",[ function() {
    var ctrl = this;
    ctrl.object = {
        name: "test",
        selected: false
    };
    ctrl.doIt = function() {
      alert("Doing It!");
    };
}]);

app.directive('dirSelect', function() {
  return {
    restrict: 'E',
    template: '<input type="checkbox" ng-model="object.selected" ng-change="doIt()">select',
    scope: {
      object: '=',
      doIt: '&'
    }
  }      
});
var-app=angular.module('myApp',[]);
app.controller(“controller”,[function(){
var ctrl=this;
ctrl.object={
名称:“测试”,
所选:false
};
ctrl.doIt=函数(){
警惕(“做它!”);
};
}]);
应用程序指令('dirSelect',函数(){
返回{
限制:'E',
模板:“选择”,
范围:{
对象:“=”,
doIt:“&”
}
}      
});
我缺少什么?

请试试这个

<dir-select do-it="ctrl.doIt()" object="ctrl.object"> 

在指令中

template: '<input type="checkbox" ng-model="object" ng-change="doIt()">select',
模板:“选择”,
编辑您的HTML:

<div ng-app="myApp" ng-controller="Controller as ctrl">
    <input type="checkbox" ng-change="ctrl.doIt()" ng-model="ctrl.object">        
</div>


选中:

角度规格化属性名称。在HTML代码中,应该使用破折号分隔格式,而不是驼峰大小写。只需将
doIt=“ctrl.doIt()”
更改为
doIt=“ctrl.doIt()”
。请参阅下面的代码

<div ng-app="myApp" ng-controller="Controller as ctrl">
    <dir-select do-it="ctrl.doIt()" object="ctrl.object"> 
</div>

该死,我不知道有人已经回答了。哦,好吧,我会投票支持@YeahBoy的答案。:-)