AngularJS 应用程序中有多个 Controller 的原因是什么?我现在已经构建了一些 Angular 应用程序,我从来没有遇到过我认为多个 Controller 会使我的事情变得更容易的问题。
我还是个菜鸟,从来没有写过单元测试,而且我的代码也没有达到应有的可管理性,所以我敢肯定这只是无知。而且我听说其他人有多个 Controller 。
换句话说:人们怎么知道他们应该创建一个新的 Controller ?
最佳答案
据我所知,Angular 应用程序应该为不同的范围使用不同的 Controller 。例如,几乎所有应用程序都有用户数据。您需要将此数据附加到用户 Controller 内的用户模型:
function UserCtrl ($scope) {
$scope.user = {
name: "bmorrow",
lastLogin: "4/16/2013"
};
}
模板(我们的 View )将位于应用程序结构的特定部分内。例如,导航栏的右侧,或用户详细信息页面上。我们通过使用 ng-controller
为它分配一个 Controller 来确定这部分的位置。这将创建所述 Controller 的 scope
并将相应的模型绑定(bind)到它。模型(我们的数据)通过 Controller 连接到 View (HTML)。
假设应用程序有一个用于用户所写文章的页面。我们可以创建另一个 Controller ,仅限于专门保存文章内容的 HTML 部分。
function ArticleCtrl ($scope) {
$scope.article = {
title: "Hello World",
body: "Lorem ipsum...."
};
}
在上面的简单示例中,组合两个 Controller 不会造成任何损害。但是一旦你的应用程序开始增长,根据它所代表的数据逻辑地组织你的 Controller / View 将使你的代码更清晰,更容易理解。减少不必要的复杂性会让一切对您来说更容易。对所有事物使用一个 Controller 是一种不必要的复杂性。
您也可以在 Basarat 的回答中看到这一点。您不一定需要为每个路由使用一个 Controller ,但这样做有助于在逻辑上构建应用程序。
因此,要回答您的问题,您通常应该为每一类数据配备一个 Controller 。用户、文章、水果、蔬菜、交易等。
了解 Angular Controllers和 Model-View-Controller模式以获取更多信息(如果您还没有的话)。我希望这会有所帮助。
关于javascript - AngularJS - 为什么有多个 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16073536/