AngularJS 中的字符串比较
String comparison in AngularJS
我正在尝试比较 AngularJS 中的两个字符串,我在网上看到了示例。据我了解,你可以使用 angular.equals(str1, str2),你可以使用 ===,你可以使用 == 如果你确定两者都是字符串......
我已经尝试了所有三个,但我没有得到结果。我所做的一定有问题,但我不知道是什么。
当我运行代码时,inc1()函数被调用。第一个警报出现 "inc1 called"。但是第二个警报 "Inside for loop" 只执行一次。它应该执行两次,不是吗?
并且 if(condition) 中的警报根本不执行。如果我删除 'if' 块,则警报 "Inside for loop" 运行 两次。
如果有人能告诉我我做错了什么,我将不胜感激。我使用了 angular.equals()、=== 和 ==,但每次都会发生同样的事情。
HTML 和 AngularJS 代码是这样的:
HTML:
<a class="tab-item" ng-repeat = "x in items" ng-if="name==x.names" ng-click="inc1(name)">
<i class="icon ion-thumbsup"></i>
Like
</a>
AngularJS:
$rootScope.items = [
{ id: 1, names: 'Dolphin', image: 'dolphin.jpg'}, { id: 2, names: 'Donkey', image: 'donkey.jpg'}];
$scope.inc1 = function(name) {
alert("inc1 called");
for(var i=0;i<$rootScope.items.length;i++)
{
alert("Inside for loop");
if (name === $rootScope.items.names[i])
{
alert("If condition satisfied");
}
}
}
//说,名字是'Dolphin'
您正在迭代错误的节点:)
for(var i=0;i<$rootScope.items.length;i++)
{
alert("Inside for loop");
if (name === $rootScope.items[i].names) // you iterate over items, not names, which it an Json property inside item
{
alert("If condition satisfied");
}
}
您应该比较 $rootScope.items[i].name 而不是 $rootScope.items.names[i]
问题是名称始终未定义 $scope.name 未定义。在视图中而不是 ng-click="inc1(name)" 放置 ng-click="inc1(x.name)".
我正在尝试比较 AngularJS 中的两个字符串,我在网上看到了示例。据我了解,你可以使用 angular.equals(str1, str2),你可以使用 ===,你可以使用 == 如果你确定两者都是字符串......
我已经尝试了所有三个,但我没有得到结果。我所做的一定有问题,但我不知道是什么。
当我运行代码时,inc1()函数被调用。第一个警报出现 "inc1 called"。但是第二个警报 "Inside for loop" 只执行一次。它应该执行两次,不是吗?
并且 if(condition) 中的警报根本不执行。如果我删除 'if' 块,则警报 "Inside for loop" 运行 两次。
如果有人能告诉我我做错了什么,我将不胜感激。我使用了 angular.equals()、=== 和 ==,但每次都会发生同样的事情。
HTML 和 AngularJS 代码是这样的:
HTML:
<a class="tab-item" ng-repeat = "x in items" ng-if="name==x.names" ng-click="inc1(name)">
<i class="icon ion-thumbsup"></i>
Like
</a>
AngularJS:
$rootScope.items = [
{ id: 1, names: 'Dolphin', image: 'dolphin.jpg'}, { id: 2, names: 'Donkey', image: 'donkey.jpg'}];
$scope.inc1 = function(name) {
alert("inc1 called");
for(var i=0;i<$rootScope.items.length;i++)
{
alert("Inside for loop");
if (name === $rootScope.items.names[i])
{
alert("If condition satisfied");
}
}
}
//说,名字是'Dolphin'
您正在迭代错误的节点:)
for(var i=0;i<$rootScope.items.length;i++)
{
alert("Inside for loop");
if (name === $rootScope.items[i].names) // you iterate over items, not names, which it an Json property inside item
{
alert("If condition satisfied");
}
}
您应该比较 $rootScope.items[i].name 而不是 $rootScope.items.names[i]
问题是名称始终未定义 $scope.name 未定义。在视图中而不是 ng-click="inc1(name)" 放置 ng-click="inc1(x.name)".