Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.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 为什么在页面加载时ng被检查两次_Javascript_Angularjs - Fatal编程技术网

Javascript 为什么在页面加载时ng被检查两次

Javascript 为什么在页面加载时ng被检查两次,javascript,angularjs,Javascript,Angularjs,我有下面的代码,当页面加载时,ng checked似乎两次触发我的简单警报方法 (函数(){ "严格使用",; angular.module('app',['common.ajax']); angular.module('common.ajax',[]); 有棱角的 .module('应用程序') .controller(“loginCtrl”,controller); 控制器。$inject=['$scope','ajaxFactory']; 功能控制器($scope,ajaxFactory

我有下面的代码,当页面加载时,ng checked似乎两次触发我的简单警报方法

(函数(){
"严格使用",;
angular.module('app',['common.ajax']);
angular.module('common.ajax',[]);
有棱角的
.module('应用程序')
.controller(“loginCtrl”,controller);
控制器。$inject=['$scope','ajaxFactory'];
功能控制器($scope,ajaxFactory){
$scope.alertme=激活;
函数激活(){
ajaxFactory.getData();
}
}
有棱角的
.module('common.ajax')
.工厂(“ajaxFactory”,工厂);
工厂。$inject=['$http'];
函数工厂($http){
var服务={
getData:getData
};
回程服务;
函数getData(){
警报(“点击我”);
}
}
})();

我认为您需要使用ng单击未选中ng

查看文档:

ngChecked是一个布尔参数,而不是一个函数

如果ngChecked中的表达式为truthy,则在元素上设置checked属性


我认为您需要使用ng click而不是ng checked

查看文档:

ngChecked是一个布尔参数,而不是一个函数

如果ngChecked中的表达式为truthy,则在元素上设置checked属性


ngChecked可以将函数作为参数,只要函数返回truthy或falsy值,如下所示:

const isGreaterThanOne = x => x > 1;

<body ng-app="app" ng-controller="loginCtrl">  
    <input type="checkbox" ng-checked="isGreaterThanOne(2)" ng-model="tester" />
</body>
const大于one=x=>x>1;

ngChecked可以将函数作为参数,只要函数返回如下所示的truthy或falsy值:

const isGreaterThanOne = x => x > 1;

<body ng-app="app" ng-controller="loginCtrl">  
    <input type="checkbox" ng-checked="isGreaterThanOne(2)" ng-model="tester" />
</body>
const大于one=x=>x>1;

它触发了两次,因为摘要循环将至少运行两次。由于下面的答案
ng change
ng click
就是您要寻找的答案。但我更喜欢更改处理程序。它会触发两次,因为摘要循环至少会运行两次。由于下面的答案
ng change
ng click
就是您要寻找的答案。但我更喜欢变更处理程序。