角度传递参数到函数

时间:2014-07-24 12:32:13

标签: javascript jquery html css angularjs

当我将一个参数传递给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>

2 个答案:

答案 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