在 AngularJs 中定义控制器的最佳方法

2023-11-29

我是 AngularJs 的新手。我很困惑哪一种是为其创建控制器的最佳方法ng-app="mainApp"。在编程时,我曾使用过的其他编程语言建议将相关数据保存在一起。但在 AngularJs 中,当我们可以在主应用程序模块上定义控制器时,为控制器提供新模块被认为是最佳实践。如果我们在 mainApp 上创建控制器,它将保留控制器并绑定,这正是我们在其他语言中想要的。

var myapp = angular.module("mainApp", []);
myapp.controller("testController", function($scope)
{
    $scope.value = "test";
})

//OR

angular.module("mainApp", ["moduleController"]);
angular.module("moduleController", []).controller("testController", function($scope){
    $scope.value = "test";
})

对于生产环境应该使用哪一个??


选项1:

var myapp = angular.module("mainApp",[]);
myapp.controller("testController",function($scope)
{
    $scope.value="test";
})

选项2:

angular.module("mainApp", ["moduleController"]);
angular.module("moduleController",[]).controller("testController",function($scope){
    $scope.value="test";
})

Option 2更好,因为这将允许您将控制器写入单独的文件中。因此,您的代码将更具可读性。如果您想在其他 AngularJS 项目中重用控制器,它也会为您提供帮助。

例如,您可以在一个文件中编写以下代码,例如app.js:

angular.module('mainApp',['ngRoute', 'appController']);

您可以将控制器写入另一个文件中,例如controllers.js:

var appController= angular.module('appController', []);

appController.controller('testController', ['$scope',
    function($scope) {
        $scope.value="test";
    }
]);

现在,您只需添加以下内容即可在另一个项目中重用控制器controllers.js项目中的文件并添加依赖appController in the app.js file.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 AngularJs 中定义控制器的最佳方法 的相关文章

  • 如何使用 angularjs 动态添加行?

    我使用代码通过单击 添加行 来添加行和 2 列 我的需要是 首先在输入字段中填写值 单击 添加项目 按钮后 值必须显示在表结构中 我是初学者 无法使用 for 循环 任何人都可以解决这个问题吗 尝试代码 https jsfiddle net
  • Angular 中的动态标签生成

    我正在尝试使用包含一堆指令名称的数组动态生成表单 scope components textbox textbox radio checkbox label 我想使用 Angular 生成具有这些名称的标签 例如
  • 是否可以为 $httpBackend 响应设置通配符?

    假设我在 AngularJS 中有以下测试代码 var someURL var dummyJSON httpBackend whenGET someURL respond dummyJSON 有没有一种方法可以使其成为一组 URL 而不仅仅
  • 错误:超时 - 未在指定的超时内调用异步回调....DEFAULT_TIMEOUT_INTERVAL

    我有一个有角度的服务类 angular module triggerTips service userData function rootScope http log firebase this log service userData S
  • 手风琴内的 ui bootstrap datepicker 不可见

    我正在尝试在手风琴内制作一个带有日期选择器的模块 问题是日期选择器弹出框在手风琴上不可见 这是一个显示问题的笨蛋 http plnkr co edit jBqU0LXQFcUuzQLency2 p preview http plnkr co
  • Yeoman“grunt 测试”在干净的项目上失败,“端口已在使用中”

    With 苹果操作系统 10 8 4 节点 0 10 12 npm 1 3 1 grunt cli 0 1 9 哟1 0 0 rc 1 凉亭0 9 2 电子邮件受保护 cdn cgi l email protection 我在清理时遇到以下
  • Angular 资源测试:$httpBackend.flush() 导致意外请求

    我想测试 angularjs 资源 use strict AddressService provides functionality to use address resource in easy way This is an exampl
  • AngularJS:从控制器内读取路由参数

    如何在 AngularJS 控制器中读取 URL 中的参数 假设我有一个像这样的网址http localhost var value我希望将该值存储在控制器内的变量中 var value URL 我尝试过使用 routeParams val
  • 使用像 angularjs 这样的框架对可访问性有什么影响?

    我们的立场 我们正在推动网络可访问性 以便遵守管理公共 教育机构的某些法律 到目前为止 我们一直在确保 我们的布局是按逻辑顺序排列的 图像有alt 标签 但很快我们就意识到我们需要行动起来并认真思考这个问题 我们正在考虑什么 我们一直在关注
  • Angularjs UI 模态表单

    我曾经使用引导模式有一个登录对话框 scope loginDialog backdrop true keyboard true windowClass modal loginDialog backdropClick true templat
  • AngularJs:显示来自 git 或 Bower 的版本号

    我创建了一个 Angular 应用程序 我想在屏幕上显示应用程序的当前版本号 目前我已将其实现为常量 application constant constants VERSION 1 1 2 但这需要我在每个新版本上更新常量 我使用 Bow
  • 如何在 ionic 应用程序中使用 socket.io

    我正在使用 ionic 创建一个应用程序cordova and angular 我必须使用 IP 地址和端口号发出请求 到插座 我读过有关 socket io 的内容 我对如何安装感到困惑套接字 io以及如何与 Angular JS 和 N
  • 如何以角度将数据表导出到csv文件中

    我的 angularjs 应用程序中有一个数据表 我想将其导出到 csv 文件 我在互联网上搜索了很多 找到了这个指令 但这仅在按钮位于表格旁边时才有效 需要帮助来编辑它 app directive exportToCsv function
  • Angular 2 TypeError:无法读取 null 的属性“animate”

    我正在使用 Chrome 51 和 Angular 2 rc4 并在加载我的 Angular 应用程序时在控制台中弹出以下错误 TypeError Cannot read property animate of null at e supp
  • AngularJS 的 HEAD 与 BODY

    在所有 AngularJS 示例中 Angular 库都放置在文档的 HEAD 标签中 我有一个基于 HTML5 Boilerplate 布局构建的现有项目 这定义了 JS 库应该放置在 DOM 的最底部 在 tag AngularJS需要
  • HttpContext.Current.Items["value"] 不起作用,因为 AngularJS 调用创建新会话

    我正在使用 C MVC 和 AngularJS 我的问题是我的 MVC 程序创建了一个HttpContext Current Items value 并在初始主控制器中设置值 但是当我的 AngularJS 通过 ajax 调用调用应用程序
  • $window.location.href 在 AngularJS 中不起作用

    我正在构建一个基本的AngularJS登录页面和 window location href没有将页面重定向到我的系统中由 WAMP 托管的新 html 我什至尝试将其重定向到谷歌 什么都没发生 我在这里尝试了所有可用的解决方案 但似乎没有任
  • 如何在 AngularJS 中存储当前用户上下文?

    我有一个 AuthService 它登录用户 它返回一个用户 json 对象 我想要做的是设置该对象并让所有更改反映在应用程序中 登录 注销状态 而无需刷新页面 我如何使用 AngularJS 来完成这个任务 实现此目的最简单的方法是使用服
  • ag-Grid 中的行格式

    我们需要有条件地将行文本设置为粗体 目前它仅适用于单个单元格 但我们需要在所有列单元格上应用文本粗体 应用格式设置后 isBold 列必须隐藏 删除 此列仅用于格式化 如何应用文本缩进 10px isBold 列包含真实值的第一列的 有可能
  • 如何更新 AngularJS 中的元标记?

    我正在使用 AngularJS 开发一个应用程序 我想更新路线更改的元标记 如何更新 AngularJS 中可以在页面上的 查看源代码 中显示的元标记 这是一段 HTML 代码

随机推荐

  • 如何使R中的A列唯一并保留B列中具有最大值的行

    我有一个包含几列 17 的数据框 第 2 列有几行具有相同的值 我只想保留其中一行 特别是第 17 列中具有最大值的行 例如 A B a 1 a 2 a 3 b 5 b 200 Would return A B a 3 b 200 加上其余
  • gdb 在 Centos 上找不到调试信息

    我试图找出一个非常奇怪的问题 我有带有 gdb 的 CentOS 6 5 系统 GNU gdb GDB 红帽企业 Linux 7 2 75 el6 and gcc 海湾合作委员会 GCC 4 8 2 20131212 红帽4 8 2 8 我
  • 如何解析 ASP.NET 网站中的 CSV 文件?

    在我的网站中 我有许多 CSV 文件 我需要解析它们并将其数据插入到我的 MySQL 数据库中 如何以编程方式解析网站中的 CSV 我建议看看TextFieldParser 类在 Net中 您需要包括 Imports Microsoft V
  • OpenCV CV::Mat 和 Eigen::Matrix

    有没有一种可逆的方式来转换 OpenCVcv Mat反对Eigen Matrix 例如 某种做法 cv Mat cvMat Eigen Matrix eigMat camera gt retrieve cvMat magic to conv
  • python中的Pi计算[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 n 迭代次数 由于某种原因 此代码将需要更多的迭代才能从其他代码获得更准确的结果 任何人都可以解释为什么会发生这种情况吗 谢谢 n s x 1000 1 0 for i in ran
  • Grails 应用程序上的破损管道异常

    我使用 jdk 1 7 和 MySQL Workbench 6 3 在 Grails 2 4 4 上开发了一个应用程序 它可以工作一段时间 但在部署几个小时后 我尝试登录 它停止工作并抛出异常 java net SocketExceptio
  • 2 个用户之间的产品订单

    我有三个模型 用户 产品 报价以及这些模型之间的关系的问题 设想 用户 1 发布产品 用户 2 可以向用户 1 发送报价 例如 10 美元 用户 1 可以接受或拒绝报价 我现在的问题是 用户 产品和报价之间的正确关系是什么 我该如何处理这些
  • 为什么不推荐使用带有单个参数(没有转换说明符)的 printf ?

    我正在读的一本书里是这么写的printf不推荐使用单个参数 没有转换说明符 建议替换 printf Hello World with puts Hello World or printf s Hello World 有人可以告诉我为什么吗p
  • Windows 上 PHP7 的 php_ibm_db2.dll 扩展? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我很难找到一个php ibm db2 dllWindows 上 PHP7 的扩展 最新版本在https pecl php net package i
  • 如何使 readLine() 超时

    我的应用程序基本上是一个 CLI 具有所有预期的功能 如提示 历史记录等 它需要等待 STDIN 来获取用户输入 为此 我使用 readLine 系统调用 我创建了一个网络套接字 用于将从用户读取的消息发送到服务器 我的应用程序是单线程的
  • 给定三个点如何计算圆的中心点?

    我正在使用 Javascript 并且我知道 3 个点的位置 我想用它们来找出圆的中心点 我发现了这个逻辑 不是选择的答案 而是有 11 票赞成的答案 https math stackexchange com questions 21365
  • 如何在 Perl 中找到从某个包继承的所有包?

    我有许多不同的网站 我从这些网站下载数据并将其转换为其他格式 使用 Perl 以便在工作中使用 这些网站都是从一个 Perl 脚本运行的 如下所示 usr bin perl use strict use My Package1 use My
  • 使用 Woocommerce 挂钩显示匹配订单项元值中选定的 BACS 帐户

    基于 选择要在 WooCommerce 的感谢页面中显示的 BACS 帐户 回答我的问题之一的代码 我更改了 Woocommerce 核心文件 class wc gateway bacs php 以便选择感谢页面上显示的正确银行帐户 该帐户
  • 高负载下 Java Beanshell 解释器中的锁争用

    我们在应用程序中使用 Java BeanShell 解释器 v1 2 b7 来动态执行标准 Java 语法 示例代码 bsh Interpreter interpreter new bsh Interpreter interpreter s
  • 带有变量的 NSURL 中的空格不会加载

    大家好 我有一个 Objective C 困境 P 我对 Objective C 很陌生 我尝试寻找答案 但没有成功 所以 这是我的情况 我现在就把代码放在这里 否则就没多大意义了 我正在写下我需要的东西 这段代码现在不起作用 稍后我会解释
  • 如果应用程序是调试版本或发布版本,Firebase 会写入不同的文件

    我刚刚发现 Firebase 出现了一些非常奇怪的情况 我想知道是我做错了什么还是这个问题有解决方案 基本上 这是我开发应用程序时一直写的内容 这正是我所期望的 nscoachtools gmail com maxMatches 60 ma
  • 将 jQuery 与 Raphael 一起使用

    我和拉斐尔一起创建了一个图像映射 我希望当单击图像映射中的路径之一 下例中的路径 10 时 包含 Raphael 画布的 div 使用 jQuery 淡出 下面的代码不起作用 但我走在正确的轨道上吗
  • Smack 4.1.4 Stanza 中的自定义扩展元素

    我正在将我的 Android 应用程序从 asmack android 库移至 Smack 4 1 4 我在 Smack 的 asmack 版本中有一些 PacketExtension 它使用 PacketExtension 和 Packe
  • 如何在输入中添加按钮

    使用 HTML 和 CSS 如何直观地将按钮放置在输入元素内 如下所示 用户应该能够正常与输入交互 文本不应位于按钮后面 即使文本很长 焦点应该可以正常工作 该表单应该可以在屏幕阅读器中访问并正常工作 整个组件应该可以使用 CSS 设置样式
  • 在 AngularJs 中定义控制器的最佳方法

    我是 AngularJs 的新手 我很困惑哪一种是为其创建控制器的最佳方法ng app mainApp 在编程时 我曾使用过的其他编程语言建议将相关数据保存在一起 但在 AngularJs 中 当我们可以在主应用程序模块上定义控制器时 为控