当我将一个参数传递给ng-click
中的getActiveId函数时<span class="col ion-ios7-heart-outline center" ng- click="getActiveId({{activeSlide.selected}})">
它的值在控制器中变为零,并且在通过inspect元素测试后传递到正确的值
<span class="col ion-ios7-heart-outline center ng-binding" ng-click="getActiveId(1)"> 1:</span>
答案 0 :(得分:5)
您需要删除参数周围的花括号。
以下是如何将参数传递给函数,或者在任何情况下,如何调用函数或在指令属性中调用范围对象:
<span class="col ion-ios7-heart-outline center" ng-click="getActiveId(activeSlide.selected)">
更新
进一步阐述为什么你必须放下双花括号...... 当您希望将语句视为表达式时,可以使用这些语句。说到指令的属性,这些属性已经是表达式,所以你不能使用双花括号。有意义吗?
有时您会在指令的属性中找到单个花括号,当您想要将内联javascript对象作为参数传递时,可以使用此方法。您将经常使用ng-style指令看到这一点:
<div ng-style="{color:red}">
答案 1 :(得分:1)
ng-click 以及所有本机的angularjs指令(ng-click-ng-model-ng-option,...) 所有这些都会接受没有两个curleybraces 的表达式。
因此,您必须从ng-click内部消除此错误: {{}} 像这样:
<span ng-click="getActiveId(activeSlide.selected)">
但请注意,如果您编写自己的新指令,并且想要将任何表达式传入其中,则必须使用如下的curleyBraces:
in your controller:
$scope.color="blue";
in your html :
<span turnToThisColor="{{color}}"></span>
// This is a directive that will turn this span color , blue