gpt4 book ai didi

javascript - 让两个 Angular Controller 共享相同的 DOM 元素是一种不好的做法吗?

转载 作者:可可西里 更新时间:2023-11-01 12:48:35 24 4
gpt4 key购买 nike

假设我有这样的东西:

<html ng-app="myApp">
...
<body ng-controller="GlobalController">
<div id="one">...</div>
...
<div ng-controller="SpecificController" id="subPart">
<div id="two">...</div>
...
</div>
...
</body>
</html>

如您所见, Controller GlobalController 管理整个主体,而SpecificController 只控制subPart

在这种情况下,div#one 可以访问 GlobalController,但是 div#two 链接到 GlobalController SpecificController

我的问题是知道这样做是否是一种不好的做法,因为我认为为相同的 DOM 元素(例如 div#two)设置 2 个 Controller 会导致冲突...

此外,如果这不是一个坏习惯,在这种情况下我应该注意什么?例如,我想我必须小心避免在两个 Controller 中使用相同的属性,对吧?

谢谢。

ps:不知道有没有人问过这个问题。我多次看到“我可以在同一页面中使用相同的 Controller 两次吗”这个问题,但这不是我的问题。

最佳答案

在我看来,这没有任何错误,您只是表明在您的 Controller 之间存在“继承”链,它允许对 DOM 的某些方面进行更精细的控制,这些方面可能具有与整个页面无关。

您关于共享属性的说法是正确的,因为子 Controller 将继承父 Controller 的属性:

function ParentCtrl($scope) {
$scope.test = "One";
}

function ChildCtrl($scope) {
console.log($scope.test); // Logs "One";
$scope.test = "Two"; // We've re-defined the variable as "Two"
}

但是,为了避免数据属性的冲突,我会尝试在代码中使 SpecificController 确实继承自 GlobalController 的代码非常明显。

关于javascript - 让两个 Angular Controller 共享相同的 DOM 元素是一种不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21475469/

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