AngularJS —— 使用模块组织你的代码 【已翻译100%】(3/3)

输出被使用Angular指令来创建

不过,它使用了一种特殊的方式创建那个输出,它使用了两种Angular指令:

{{mc.name}}

ng-repeat

第一个指令被关联到了Div那一行上面MainCtrl的声明和引用. 我们告诉Angular,说我们想以mc这个名称引用我们的MainCtrl函数(对象)。那就是Angular提供的一个很棒的缩写功能.

现在,因为我们将一个属性放到了MainCtrl的this对象上,我们现在就可以通过mc和属性的名称来引用那些东西了。我们将那些东西包含特殊的双大括号{{ }}里面,如此Angular编译器就懂得那是可以运行的代码,你就会瞧见Angular将其转换成了HTML:

<p>Hello {{mc.name}}!</p>

编程了下面这一:

Hello MainCtrl!

之后,我们设置了一个漂亮的无需列表,并使用了ng-repeat指令来迭代输出数组中的每一行.

然后Angular跌倒了整个allThings数组,并将其装换成了下面的HTML

{{a}}
变成了如下的输出

1. first
2. second
3. third

就那么简单。这就是模块化的所有东西,我们的值再也不会被任何人动手动脚了.

SecondCtrl : 几乎就是同样的东西

这里有SecondCtrl的代码. 代码机会就是一样的,除了我们获取我满原来的app模块处有点不一样——不是第一次创建它了.

(function() {

  var app = angular.module(&apos;mainApp&apos;);

  app.controller(&apos;SecondCtrl&apos;, function() {
    console.log("in SecondCtrl...");
    // vt = virtual this - just shorthand
    vt = this;
    vt.name = &apos;SecondCtrl&apos;;
    vt.allThings = ["bacon", "lettuce", "tomato"];

  });
})();

仔细看看下面这一行:

var app = angular.module(&apos;mainApp&apos;);

唯一的不同就是我们没有提供引用数组.

那是因为mainApp已经是存在了的,而我们只是想向其添加另外一个新模块 (SecondCtrl) .

总结:最佳实践

所有其它的脚本中的代码,以及HTML基本上是一样的,而此处最重要的是所有的代码都被模块化了,数据也被封装了起来,以便更好的组织我们的代码. 这是Google软件开发者遵循的一个最佳实践,也是我们应该遵循的。请学习他,运用它,并与它同在吧(阿门).

时间: 2024-08-28 03:16:37

AngularJS —— 使用模块组织你的代码 【已翻译100%】(3/3)的相关文章

AngularJS —— 使用模块组织你的代码 【已翻译100%】(2/3)

函数是一个对象:它创建了范围 这是因为现在你已经把isDoingWork这个变量创建在了一个函数里面 -- 也就是我们们的匿名 IIFE 中 -- 而如此这个变量就只能通过这个函数才能访问到. 有趣的是Javascript中的所有函数都是第一类对象. 那很简明的意味着函数是一个对象,它可能通过一个变量被访问到. 或者说,另外一种描述的方式是你存储了指向 函数的一个引用,并在稍后的某个时间获取其变量. 在我们第一个示例中,我们的问题是并没有保存一个指向我们匿名函数的引用,所以我们永远也不能再获取到

AngularJS 提交表单的方式 【已翻译100%】(2/2)

简洁语法 这个例子是以字符串的方式发送数据,并且发送你的头信息.如果你不需要这些,并且希望Angular 的$http POST尽可能的简洁,我们可以使用简写方法: ... $http.post('process.php', $scope.formData) .success(function(data) { ... }); ... 绝对更简洁更容易记住方法. $http 内部控制器: 理想的,你可以将$http请求从controller移除到 service.这只是为了演示目的,我们将会尽快在

AngularJS —— 使用模块组织你的代码 【已翻译100%】(1/3)

介绍 AngularJS 的库里面有很多东西,但本文中我只想专注于小的,针对特定主题的库,我相信通过它们能对Angular有一个较好的介绍. 理解这篇文章并不需要你有任何Angular相关的,甚至是JavaScript的经验.希望你能从本文中看到一些使用Angular的好处,并乐于动手尝试. 背景 我使用Angular有一段时间了,而在学习Angular的时候,我也喜欢构建一些样例,所以当我一开始深入进去的时候,对于模块或者JavaScript的设计模式,我也没有多想,那样对保持代码组织和条理性

AngularJS 提交表单的方式 【已翻译100%】(1/2)

在AngularJS出现之前,很多开发者就面对了表单提交这一问题.由于提交表单的方式繁杂而不同,很容易令人疯掉--然而现在看来,依然会让人疯掉. 今天,我们会看一下过去使用PHP方式提交的表单,现在如何将其转换为使用Angular提交.使用Angular来处理表单,对我而言,是一个"啊哈"时刻(译者:表示了解或发现某事物的喜悦).即使它甚至都没有涉及多少Angular表层的东西,但是它却帮助用户看到表单提交之后的潜力,并且理解两种数据绑定方式. 我们会使用jQuery平台来进行这个处理

AngularJS Hello World 代码实例,只需 6 步 【已翻译100%】

本文展示了AngularJS框架实现的hello world代码示例. 如下是一些你在看Hello World 示例和接下来的代码示例时需要重点关注的方面. ng-app, ng-controller, ng-model 指令 带有两个大括弧的模板 步骤 1: 在部分包含Angular Javascript 将下面的代码包含入 中,以引入 Angularjs javascript 文件. 可以用如下写法从 Google 管理的库 获得最新的代码. <script src="//ajax.g

OpenSSL 项目路线图 【已翻译100%】(1/2)

本文档旨在描绘出OpenSSL项目的路线图.它是一个会日臻完善的在线文档.它应该被设定理想的目标和里程碑日期. OpenSSL 项目当前看起来越来越迟滞和封闭.本路线图将尝试通过设定一些带有具体里程碑日期的目标来解决这个问题. 目前的问题 OpenSSL项目目前正面面临一些问题,它们是: 1.RT积压 开放以来的相当长的一段时间,RT的已经积压到了一个显著的数量. 这些问题中的大部分事实上已经被处理了,所以应该被关闭,但是却没有被记录在系统中.而大多数都尚未被关注. 2.不完整/错误的文档 Op

AngularJS —— 使用 ngResource、RESTful APIs 和 Spring MVC 框架提交数据 【已翻译100%】

本文为开发者呈现了一些概念和相关的示例代码,介绍了用ngResource($resource)服务POST方式提交数据到和服务器端SpringMVC环境下的RESTFul APIs.示例代码可以在如下页面找到:http://hello-angularjs.appspot.com/angularjs-restful-apis-post-method-code-example.相对于使用$http服务,我更喜欢这种方法的主要理由是ngResource允许你使用抽象方式(例如$resource类),你

编写更好代码的 6 个提示 【已翻译100%】

每周我都可以用四种不同的语言编写至少几百行代码.我也可以同其他与我一同工作的开发者协作进行代码的编辑和审查. 简单来说,有许多代码在到处放着,当它们没有被组织管理起来,但 更重要的是当它们没有写好时,事情就会变得有点复杂起来.让我们来看一看几种能提升我们的代码整体质量的不同方法. 1. 开始构建模块 保持代码一致,可重用且有组织的一个最好方式就是将功能成组的放在一起.例如,别把你所有的js代码都扔到一个main.js文件中,而是要尝试基于功能将它们分组放在分开的文件里面, 然后在你达成你的构建步

远程执行 Android 设备上的代码 【已翻译100%】(2/2)

我设置好AP后,从13,119个标明有潜在漏洞的app中随机选了一些,把它们安装到接入了AP的一台Nexus 5(运行4.4.3)和一台三星XE700t(运行AOSP 4.2的x86平板).我们只不过是启动每个App,做些简单的交互操作,就成功地在超过半数的应用中触发了远程代码执行,它们加载了通过中间人代理注入的恶意代码. 为了好玩,我们把注入到一个app中javascript代码反复修改,直到显示Bromium的标志替换了原有广告. 被扰乱而显示了Bromium标志的app的UI截屏. 全是广