gpt4 book ai didi

javascript - ngInit VS.ngInit点火 Controller 功能 - 有哪些缺点?

转载 作者:太空宇宙 更新时间:2023-11-04 15:49:10 25 4
gpt4 key购买 nike

我有几个关于使用 ng-init 的问题 - 我在网上看到很多人建议使用 ng-init 来运行所需的函数 Controller 已准备就绪。

如果我有两个 View 使用相同的 Controller ,但我只希望其中一个 View 触发特定的 Controller 功能,就像这样

index.html

<div ng-controller="myController">
{{ someStuff }}
</div>

<div ng-controller="myController" ng-init="run()">
{{ someOtherStuff }}
</div>

app.js

.controller('myController', function($scope){
$scope.someStuff = 'ABC';
$scope.run = function(){
$scope.someOtherStuff = 'XYZ';
}
}

在这种情况下,使用 ng-init 调用 run() 的真正缺点是什么?如果 run() 是异步函数会出现任何问题吗?

在我看来,这对工作来说似乎很好,但我可能掩盖了为什么这是一个坏主意。任何意见都将受到赞赏!

最佳答案

我个人避免使用ng-init,除非没有其他方法可以解决我的问题。这确实是 ng-init 的用途,但是您会发现到处都有大量 ng-init 的错误用法。

根据 ng-init 文档:

This directive can be abused to add unnecessary amounts of logic into your templates. There are only a few appropriate uses of ngInit, such as for aliasing special properties of ngRepeat, as seen in the demo below; and for injecting data via server side scripting. Besides these few cases, you should use controllers rather than ngInit to initialize values on a scope.

更好的想法是简单地使用另一个 Controller 并将模板与 Controller 1:1 映射。

关于javascript - ngInit VS.ngInit点火 Controller 功能 - 有哪些缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43284541/

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