您好我是Angular的新手并试图通过以下方式调用带超链接的控制器方法:
<a href="" ng-click="getAssetDetail(contractNum)"> {{item.contractnum}} </a>
item.contractnum 是一个范围变量,当我从&#39; 标记中取出但在标记内部时,它是不可见的,我也想将它传递回控制器方法 getAssetDetail ,但无法弄清楚如何完成它。请建议。
编辑: 视图:
<tbody>
<tr ng-repeat="item in pagedItems[currentPage] ">
<td><a href="" ng-click="getAssetDetail(item.contractnum)">contract number {{item.contractnum}} </a> <br /> Serial Number:{{item.serialNum}} </td>
</tr>
</tbody>
控制器:
$scope.getAssetDetail = function (contractNum) {
//My Code Here
}
pagedItems=[{"contractnum":"123", "serialNum":"ABC1" },
{"contractnum":"121", "serialNum":"ABC2" },
{"contractnum":"124", "serialNum":"ABC3" },
{"contractnum":"125", "serialNum":"ABC4" }
]
答案 0 :(得分:0)
如果你真的有pagedItems
喜欢
pagedItems=[{"contractnum":"123", "serialNum":"ABC1" },
{"contractnum":"121", "serialNum":"ABC2" },
{"contractnum":"124", "serialNum":"ABC3" },
{"contractnum":"125", "serialNum":"ABC4" }
]
所以你错误地使用ngRepeat
,因为传递给它像pagedItems[0]
{"contractnum":"123", "serialNum":"ABC1" }
所以 item 在这种情况下是123
,ABC1
,它实际上没有属性contractnum
和其他
解决你可以使用
ng-repeat="item in pagedItems"
或保存在pagedItems
对象数组中,如[[{},...],[{},...],[{},...]]
答案 1 :(得分:0)
如果您的pagedItems数据仅用于一页数据,则需要将ng-repeat行更改为:
<tr ng-repeat="item in pagedItems">
如果您的pagedItems数据是每个页面的所有数据,那么您需要将pagedItems数据结构更改为具有每个页码的属性的对象,如:
pageItems = {
"1": [{"contractnum": "121"}, ... etc],
"2": [{"contractnum": "131"}, ... etc]
... etc ...
}
或者作为一个数组数组,其中外部数组中的索引是页码(或者可能是pagenumber - 1),内部数组是每个页面的对象数组,如:
pageItems = [
[{"contractnum": "121"}, ... etc],
[{"contractnum": "131"}, ... etc]
]
您现有的ng-repeat行应该可以正常工作。