gpt4 book ai didi

javascript - ng-init 与 Controller 中的函数,使用 $parent 时哪个是更好的做法?

转载 作者:行者123 更新时间:2023-12-02 16:10:43 24 4
gpt4 key购买 nike

我有一个与 ng-repeat 列表相对应的 Bootstrap 模式。我想从其父级访问 ng-repeat 范围数据,其中包含模态。我这样做是为了当单击列表上的模式按钮时,JSON 中的相应数据会出现在模式中。

我找到了两种方法可以做到这一点,我想知道哪一种是最好的选择?

方法1查看:

<li ng-init="myFunction(item,$parent)" ng-repeat="item in data.webapps_1.items>

Controller :

 $scope.myFunction = function(item,parent){
parent.selected=item.counter-1;
};

方法2查看:

<li ng-init="$parent.selected=item.counter-1" ng-repeat="item in data.webapps_1.items>

Controller 中没有任何内容。

我在 Angular ngInit 文档中读到了

The only appropriate use of ngInit is for aliasing special properties of ngRepeat, as seen in the demo below. Besides this case, you should use controllers rather than ngInit to initialize values on a scope.

但是ngRepeat的特殊属性列表不包括$parent。

那么,哪种做法更好呢?在 Controller 或 ngInit 指令中包含表达式 $parent.selected=item.counter-1

提前致谢

最佳答案

只要你保持一致,两者都很好。不过取决于应用程序的规模。

IMO,如果应用程序变得很大,您将需要采用函数方式,以更好地遵循解耦和关注点分离的整个 MVC 哲学 ( http://victorblog.com/2013/03/18/angularjs-separation-of-concerns/ )。

ng-init="myFunction(item,$parent)"

这是一个更好的结构,因为您希望将大部分业务逻辑保留在 javascript Controller 中,而不是 View 中。

关于javascript - ng-init 与 Controller 中的函数,使用 $parent 时哪个是更好的做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30250693/

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