角度范围变量在锚标记内不可见
angular scope variable is not visible inside anchor tag
您好,我是 Angular 的新手,并尝试通过以下方式调用带有超链接的控制器方法:
<a href="" ng-click="getAssetDetail(contractNum)"> {{item.contractnum}} </a>
其中 item.contractnum 是一个范围变量,当我从"a"标签中拉出它时它是可见的,但在标签内它不可见,我也想把它传回控制器方法 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" }
]
如果你真的有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" }
所以在这种情况下的项目是123
的,ABC1
真的没有财产contractnum
和其他
对于解决,您可以使用
ng-repeat="item in pagedItems"
或保存在pagedItems
对象数组中,如 [[{},...],[{},...],[{},...]]
或使用 limitTo 等filter
在pagedItems
中选择仅需要的元素
如果您的 pagedItems 数据仅用于一页数据,则需要将 ng-repeat 行更改为:
<tr ng-repeat="item in pagedItems">
如果您的 pagedItems 数据是每个页面的所有数据,则需要将 pagedItems 数据结构更改为具有每个页码属性的对象,如下所示:
pageItems = {
"1": [{"contractnum": "121"}, ... etc],
"2": [{"contractnum": "131"}, ... etc]
... etc ...
}
或者作为数组数组,其中外部数组中的索引是页码(或者可能是页码 - 1),内部数组是每个页面的对象数组,如下所示:
pageItems = [
[{"contractnum": "121"}, ... etc],
[{"contractnum": "131"}, ... etc]
]
然后,您现有的ng重复线应该可以工作。
相关文章:
- ngDialog-弹出窗口未更新范围变量
- AngularJS范围变量Unwatch
- 将外部控制器的范围变量设置为角度
- 对于使用传递的数据计算的局部范围变量,角度绑定在自定义指令中不起作用
- 如何使用EnquireJS使AngularJS范围变量依赖于媒体查询
- 具有范围变量的控制器不工作
- 范围变量返回长度错误
- 将 NodeJS 模块范围变量作为对象访问
- Angularjs 更新 setTimeout 中的范围变量不起作用
- 递归承诺调用 - 内存范围变量问题
- AngularJS:从指令设置范围变量
- Angularjs:访问范围变量数组并计算平均值
- 范围变量更新,但不更新视图
- 从html调用angularjs控制器中的一个函数,但未定义范围变量
- 如何在编辑范围变量时(暂时)避免摘要循环
- 防止Angular范围变量通过引用自动绑定到服务私有成员
- 使用 AngularJS 从指令设置范围变量
- 集合回调忽略范围变量
- 使用forEach修改角度范围变量
- 因果报应测试中未定义的预期范围变量