如何在 AngularJS 中初始化嵌套控制器
How do I initialize a nested controller in AngularJS?
假设我们有一个AngularJS视图,有一个主细节关系。例如订单和订单详情。
我们假设细节是使用 ng-repeat
over 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
}
但是,这感觉像是一个黑客,因为我需要在控制器中知道 ng-repeat 变量名称是什么,在这种情况下detail
有没有其他方法可以从控制器初始化中的中继器获取活动项目?
如果有人将 ng-repeat 变量名称从 detail
更改为其他名称,则控制器将不再按预期工作。
据我了解,您希望将详细信息变量传递到嵌套范围内,并且您不想担心记住变量名称,以防您必须在另一个ng-repeat中使用嵌套控制器?
你可以很容易地做到
<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 ">
并记得在详细控制器中使用 myVarname。当然,这并不完美,因为你必须记住detailController 需要 myVarname 才能工作。
相关文章:
- 嵌套化简器
- 扁平化_非常_嵌套密集型函数:如何
- 如何在 AngularJS 中初始化嵌套控制器
- Javascript 嵌套函数初始化
- jQuery 序列化嵌套表单
- 扁平化嵌套回调
- EmberJS:使用 ajax 加载的父模型初始化嵌套模型
- 初始化内部嵌套函数
- 如何使用JSON.parse反序列化嵌套缓冲区
- 扁平化嵌套的可观察对象
- 初始化“complex"嵌套的javascript /对象
- 序列化嵌套javascript对象,同时删除某些属性
- 样式化嵌套的li元素
- 平坦化嵌套对象
- 选择性地平坦化嵌套JSON结构
- 是否有任何示例代码可以将D3可视化嵌套在另一个可视化中
- Javascript : 省略 在嵌套 For 循环中初始化
- 用于初始化Javascript数组的数组的嵌套For循环
- 初始化嵌套表单的对象不工作
- 在控制器中初始化嵌套的作用域变量