作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我们有一个具有主要细节关系的 AngularJS View 。例如订单和订单详情。
并且我们假设细节是使用 ng-repeat
在 order.details
上呈现的。例如
<div ng-repeat="detail in orderCtl.order.details"
ng-controller="detailController as detailCtl">
我知道当 detailController
初始化时我可以获取 $scope.detail
。
/* initcontroller */
function($scope) {
console.log($scope.detail); //<-- this is the active item
}
但是,这感觉像是一个 hack,因为我需要在 Controller 中知道 ng-repeat 变量名称是什么,在本例中是 detail
有没有其他方法可以从 Controller 初始化中的中继器获取事件项目?
如果有人将 ng-repeat 变量名从 detail
更改为其他名称,那么 Controller 将不再按预期工作。
最佳答案
据我了解,您想将详细信息变量传递到嵌套范围中,并且您不想担心记住变量名称以防万一您必须在另一个 ng-repeat 中使用嵌套 Controller ?
你可以很容易地做到这一点
<div ng-repeat="detail in orderCtl.order.details"
ng-controller="detailController as detailCtl" ng-init="myVarname= detail">
<div ng-repeat="historydetails in orderCtl.historyorder.details"
ng-controller="detailController as detailCtl" ng-init="myVarname= historydetails ">
并记住在 detailController 中使用 myVarname。当然这并不完美,因为您必须记住 detailController 需要 myVarname 才能工作。
关于javascript - 如何在 AngularJS 中初始化嵌套 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28084640/
我是一名优秀的程序员,十分优秀!