Javascript ng重复中的AngularJS指令未传递计算值

Javascript ng重复中的AngularJS指令未传递计算值,javascript,html,angularjs,angularjs-ng-repeat,angularjs-ng-click,Javascript,Html,Angularjs,Angularjs Ng Repeat,Angularjs Ng Click,我两天前才开始学习AngularJS,所以如果你认为我没有以一种角度的方式来处理这个问题,那么请指导我。 下面的代码是我的HTML的一部分,它有ng repeat指令 <div class="row" data-ng-repeat="button in buttons" ng-if="$index % 3 == 0"> <div class="col-lg-3 col-lg-offset-1"> <button class="btn btn-def

我两天前才开始学习AngularJS,所以如果你认为我没有以一种角度的方式来处理这个问题,那么请指导我。 下面的代码是我的HTML的一部分,它有ng repeat指令

<div class="row" data-ng-repeat="button in buttons" ng-if="$index % 3 == 0">
   <div class="col-lg-3 col-lg-offset-1">
      <button class="btn btn-default button-width" data-ng-click="my_func('{{buttons[$index].desc}}')">{{buttons[$index].name}}</button>
   </div>
   <div class="col-lg-3 col-lg-offset-1">
      <button class="btn btn-default button-width" data-ng-click="my_func('{{buttons[$index + 1].desc}}')">{{buttons[$index + 1].name}}</button>
   </div>
   <div class="col-lg-3 col-lg-offset-1">
      <button class="btn btn-default button-width" data-ng-click="my_func('{{buttons[$index + 2].desc}}')">{{buttons[$index + 2].name}}</button>
   </div>
</div>
现在,当呈现HTML页面时,它会显示数组中的值,但是当我单击调用ng click指令的按钮并依次调用my_func时,发送到服务器的值不是
my_func('OFF_V1')
的呈现值,而是
my_func('{buttons[$index].desc}')
。我试图找到一个解决方案,但现在像$apply和$digest这样的东西超出了我对Angular的理解,因此非常感谢您的帮助。

如果您没有通过
,那么您将获得值,因为Angular将把他的表达式解析为值。但是在使用<代码> '/CODE >角后,它会把它看作一个字符串,然后停止解析。如果要发送值,请尝试在不使用
'
的情况下使用,但建议不要使用角度表达式(
{{}}
)传递,否则将传递任何一种方式的值

像这样试试

data-ng-click="my_func(buttons[$index].desc)"

您正在向函数传递字符串。另外,也不要担心在函数调用中使用
{{}
,即用于字符串插值。也就是说,您将在html中使用
{{}
,以便将该值写入视图。谢谢@TjGienger,是的,我现在明白了。我原以为$index需要它,但现在我知道我不需要它。你也可以像
函数($index)
那样简单地传递索引,这对数组操作很好。@TjGienger,对不起,我不太明白。请你再解释一下好吗?诚然,我没有仔细检查你的代码,但你可以将
$index
传递到函数中,然后从控制器内部的数组访问特定按钮,而不是html中的所有内容。非常感谢@anik this works,我没有意识到它试图将其作为字符串进行计算。将此标记为正确答案,现在它表示我可以在5分钟内接受此答案。
data-ng-click="my_func(buttons[$index].desc)"