2017-08-13 60 views
1

我使用下面的代码段,以列出html文档 在对象的数组,它示出了链路准确的列表...AngularJs:NG-点击()接受无效的参数

<div ng-repeat="item in List"> 
    <a ng-click="Show('{{item.name}}');"> ShowName </a> 
</div> 

它输出下面的HTML代码:

<a ng-click="Show('name1')">ShowName</a> 
    . 
    . 
    . 
    <a ng-click="Show('//upto nth name')">ShowName</a> 

这里是我的角度代码:

 $scope.Show= 
     function(getName) 
     { 
     alert(getName); 
     } 

但是当I C舔它显示的任何链接“{{item.name}}”,而不是显示在alertbox“名1”或相应的名称...

我也试过

 Show(&#39;{{item.name}}&#39;); 

但结果是一样的。 ..

我在做什么错?

+1

可以使用NG点击= “显示(item.name);” – hasan

回答

1

你不应该在Angular指令中使用{{}}。您的代码应该是这样的:

<div ng-repeat="item in List"> 

    <a ng-click="Show(item.name)"> ShowName </a> 

</div> 
+0

谢谢你的解决方案@urielSilva – mubsher

+0

@ mubsher没问题,你介意答案? – urielSilva

+0

@urielSilve我有11 reputatuion哪些是不够upvote任何awer或问题...我会upvote,因为我得到15声誉... – mubsher

1

您可以下列风格

<li ng-repeat="item in List"> 
    <a href="" ng-click="clickit($index)">{{item.name}}</a> 
</li> 

这里使用$指数代表的数组的索引。我更喜欢使用这个,因为在这里你可以访问完整的对象,然后只是做你想做的事情。

$scope.clickit = function(x) { 
    console.log($scope.List[x]) 
} 

,如果你不喜欢上面的样式,你可以用下面的风格

<li ng-repeat="item in List"> 
    <a href="" ng-click="clickit(item.name)">{{item.name}}</a> 
</li> 
+0

感谢您的答复,但我不明白术语$索引 什么$指数包含在其中我的意思是什么将是价值 $ index =? 在每个重复中, 它是否包含“item”中的对象或类似 $ index ['0']将eqaul列表['0']? – mubsher

+0

$ index是您的集合中的索引/键(就像php的foreach中的$ key一样)。假设您有一个名为List的数组,其中包含五个对象。所以List [0]表示数组的第一项。列表[1]代表数组的第二项,依此类推。对于第一次重复/迭代,$ index将为0.对于第二次重复/迭代,$ index将是1,依此类推。 –

+0

哦,这太棒了,谢谢@sahedsawon – mubsher

1

这里的问题是,你是传递变量时,作为参数传递给函数使用'{}

变化

<a ng-click="Show('{{item.name}}');"> ShowName </a>

<a ng-click="Show(item.name);"> ShowName </a>