AngularJS值作为函数中的参数?

时间:2017-04-12 10:53:25

标签: javascript jquery angularjs

AngularJS 1.3.15
jQuery 2.1.3

'use strict'


将参数传递给函数不起作用。

C.change = 328;

ng-click =“editMapSize(C.change)”
页面

  

ng-click =“editMapSize(C.change)”


ng-click =“editMapSize({{C.change}})”
错误

  

语法错误:表达式第15列的令牌'{'无效键   [editMapSize({{C.change}})]从[{C.change}}]开始。

html的

<table class="table table-striped table-hover">
    <tbody>
        <tr>
            <th ng-repeat="T in htmlTableTitle">{{ T.t }}</th>
        </tr>
    </tbody>
    <tbody>
        <tr ng-repeat="R in htmlTablePrepareData">
            <td ng-repeat="C in R " 
                class="{{ C.class }}" 
                data-map-id="{{ C.change }}" 
                ng-click="editMapSize( {{C.change}} )">{{ C.value  }}</td>
        </tr>
    </tbody>
</table>

如何传递变量?



2。在这种情况下如何读取数据属性?
点击$(this)show $ scope。

2 个答案:

答案 0 :(得分:1)

删除大括号。

 <tr ng-repeat="R in htmlTablePrepareData">
        <td ng-repeat="C in R " 
            class="{{ C.class }}" 
            data-map-id="{{ C.change }}" 
            ng-click="editMapSize(C.change)">{{ C.value  }}</td>
    </tr>

答案 1 :(得分:0)

当您通过angular指令传递变量时,请说ng-clickng-if或我们需要传递没有角度表达式的变量的任何其他内容,即避免使用花括号。所以,你可以做到

<table class="table table-striped table-hover">
    <tbody>
        <tr>
            <th ng-repeat="T in htmlTableTitle">{{ T.t }}</th>
        </tr>
    </tbody>
    <tbody>
        <tr ng-repeat="R in htmlTablePrepareData">
            <td ng-repeat="C in R " 
                class="{{ C.class }}" 
                data-map-id="{{ C.change }}" 
                ng-click="editMapSize(C.change)">{{ C.value  }}</td>
        </tr>
    </tbody>
</table>

如果您只使用change C值,这很好,但如果您需要传递更多C参数,请避免传递单个值。而是传递整个对象,如

ng-click="editMapSize(C)"

并在控制器内的editMapSize函数中操作此对象。