gpt4 book ai didi

javascript - 如何在 AngularJS 中初始化嵌套 Controller ?

转载 作者:行者123 更新时间:2023-11-29 19:30:20 24 4
gpt4 key购买 nike

假设我们有一个具有主要细节关系的 AngularJS View 。例如订单和订单详情。

并且我们假设细节是使用 ng-repeatorder.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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com