Javascript ng显示“调用方法”不起作用
我是AngularJs新手,通过w3schools教程,我创建了自己的示例,其中ng show调用方法在ng click事件后删除元素 当我点击按钮时,它调用HidePerson方法。此外,它多次调用ShowPerson方法,似乎可以查找,但无论何时返回true或false,元素总是可见的 这是我的密码 var personCtrl=角度。模块“person”,[]; 控制器'personCtrl',函数$scope,$http{ $scope.persons=[]; $scope.personIgnoreList=[]; $scope.GetPersons=函数{ $http.get'http://www.w3schools.com/website/Customers_JSON.php' .成功功能数据,obj1、obj2、obj3{ $scope.persons=数据; } .错误功能数据,obj1、obj2、obj3{ $scope.persons=Ops…smth出错了。。。; } }; $scope.ShowPerson=职能人员{ $$scope.personIgnoreList.eachfunction i,p{ 如果p==人{ 返回false; } }; 返回true; } $scope.HidePerson=职能人员{ $scope.personIgnoreList.pushperson; } }; {{person.Name}来自{{person.City}-{{person.Country}Javascript ng显示“调用方法”不起作用,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我是AngularJs新手,通过w3schools教程,我创建了自己的示例,其中ng show调用方法在ng click事件后删除元素 当我点击按钮时,它调用HidePerson方法。此外,它多次调用ShowPerson方法,似乎可以查找,但无论何时返回true或false,元素总是可见的 这是我的密码 var personCtrl=角度。模块“person”,[]; 控制器'personCtrl',函数$scope,$http{ $scope.persons=[]; $scope.perso
我不会在angularJS中使用jQuery,而且在您的情况下是无用的,您可以这样更改forEach:
$scope.ShowPerson = function (person) {
var show = true;
angular.forEach($scope.personIgnoreList, function (p, i) {
if (p == person) {
show= false;
}
});
return show;
}
我不会在angularJS中使用jQuery,而且在您的情况下是无用的,您可以这样更改forEach:
$scope.ShowPerson = function (person) {
var show = true;
angular.forEach($scope.personIgnoreList, function (p, i) {
if (p == person) {
show= false;
}
});
return show;
}
使用此代码
$($scope.personIgnoreList).each(function (i, p) {
if (p == person) {
return false;
}
});
return true;
您总是返回true,因为从$返回。每个都不同于从函数返回,它只会中断循环
正确的方法是使用如下内容:
$scope.ShowPerson = function (person) {
return !$scope.personIgnoreList.some(function(p) {
return p === person;
});
}
演示:使用此代码
$($scope.personIgnoreList).each(function (i, p) {
if (p == person) {
return false;
}
});
return true;
您总是返回true,因为从$返回。每个都不同于从函数返回,它只会中断循环
正确的方法是使用如下内容:
$scope.ShowPerson = function (person) {
return !$scope.personIgnoreList.some(function(p) {
return p === person;
});
}
演示:一个数组有一些和每一种方法可以让你做这些类型的测试
$scope.ShowPerson = function (person) {
return $scope.personIgnoreList.every(function(p) {
return p != person;
});
};
对于人格中的每个人,如果不等于人格,请重新列出一些测试。如果是,则它将中断并返回false
注意:IE 8中没有each。数组具有允许您执行此类测试的某些方法和each方法
$scope.ShowPerson = function (person) {
return $scope.personIgnoreList.every(function(p) {
return p != person;
});
};
对于人格中的每个人,如果不等于人格,请重新列出一些测试。如果是,则它将中断并返回false
注意:IE 8中不提供every。如果$$scope.personIgnoreList.eachfunction i,p{-不要在那样的角度应用程序中使用jQuery…根本不要在角度应用程序中使用jQuery,这种东西你应该使用Directives。如果$$scope.personIgnoreList.eachfunction i,p,你也可以尝试使用ng{-不要在Angular应用程序中使用jQuery…根本不要在Angular应用程序中使用jQuery,你应该使用Directives来完成这类工作你仍然在使用jQueryangularJS@FrancescoE.jQuery不是这里的问题。但是为什么要对forEach使用jQuery呢?没错,但它仍然不是问题。例如,在您的答案中,您仍然有同样的问题,即使你使用angular.forEach.好吧,假设你根据我的建议修改了不使用jQuery,我对我的答案也做了同样的修改,那就是合作!你仍然在使用jQueryangularJS@FrancescoE.jQuery不是这里的问题。但是为什么要对forEach使用jQuery呢?没错,但它仍然不是问题。例如在你的答案中,你仍然有同样的问题,即使你使用angular.forEach。好吧,假设你修改了我的建议,不使用jQuery,我对我的答案也做了同样的修改,那就是合作!