AngularJS开发指南32:理解服务
蒙奇·D·撸码客 发布于 2016-06-30 17:13:24
AngularJS服务是一种能执行一个常见操作的单例,比如$http服务是用来操作浏览器的XMLHttpRequest对象的。要使用AngularJS服务,你只需要在需要的地方(控制器,或其他服务)指出依赖就行了。AngularJS的依赖注入系统会帮你完成剩下的事情。它负责实例化...
前端撸码笔记
成功指南:把撸鸟的时间都放在撸码上
蒙奇·D·撸码客 发布于 2016-06-30 17:13:24
AngularJS服务是一种能执行一个常见操作的单例,比如$http服务是用来操作浏览器的XMLHttpRequest对象的。要使用AngularJS服务,你只需要在需要的地方(控制器,或其他服务)指出依赖就行了。AngularJS的依赖注入系统会帮你完成剩下的事情。它负责实例化...
蒙奇·D·撸码客 发布于 2016-06-30 17:12:57
下面是“创建AngularJS服务”一章中“依赖”例子里的“notify”服务的单元测试。测试用使用了Jasminespy替代了真实浏览器的alert。varmock,notify;beforeEach(function(){mock={alert:jasmine.createS...
蒙奇·D·撸码客 发布于 2016-06-30 17:12:16
AngularJS允许服务声明它的实例和构造依赖的服务。要声明依赖,你可以在工场方法参数中隐式指明他们,也可以将$inject属性设置成包含了依赖名称的数组,或者是使用数组表示法。不推荐使用$inject属性的这种方法。使用数组表示法:functionmyModuleCfgFn(...
蒙奇·D·撸码客 发布于 2016-06-30 17:11:50
将服务用作控制器的依赖和将服务用作其他服务的依赖很类似。因为Javascript是一种动态语言,依赖注入系统无法通过静态类型来知道应该注入什么样的服务(静态类型语言就可以)。所以,你应该$inject的属性来指定服务的名字,这个属性是一个包含这需要注入的服务的名字字符串的数组。名...
蒙奇·D·撸码客 发布于 2016-06-30 17:11:27
虽然AngularJS提过了很多有用的服务,但是如果你要创建一个很棒的应用,你可能还是要写自己的服务。你可以通过在模块中注册一个服务工场函数,或者通过Modeul#factoryapi或者直接通过模块配置函数中的$provideapi来实现。所有的服务都符合依赖注入的原则。它们用...
蒙奇·D·撸码客 发布于 2016-06-30 17:10:59
它是干什么的?$location服务解析地址栏中的URL(基于window.location),让你在应用代码中能获取到。改变地址栏中的URL会反应$location服务中,反之亦然。$location服务:暴露当前地址栏的URL,这样你就能获取并监听URL。改变URL。当出现以...
蒙奇·D·撸码客 发布于 2016-06-30 17:10:27
服务是一种由服务器端带到客户端的特性,它由来已久。AngularJS应用中的服务是一些用依赖注入捆绑在一起的可替换的对象。服务是最常和依赖注入一起用的,它也是AngularJS中的关键特性。...
蒙奇·D·撸码客 发布于 2016-06-30 17:09:03
过滤器可用在任何api或者ng.$rootScoe.Scope的执行过程中,不过一般用来格式化绑定在模板中的表达式。{{expression|filter}}过滤器一般在处理过程中将数据转变成新的格式。它能使用链式风格,还能接受附加参数。你可以像下面这样使用链式风格:{{expr...
蒙奇·D·撸码客 发布于 2016-06-30 17:07:39
写一个你自己的过滤器非常容易:在你的模块中注册一个新的过滤器(可注入的)工厂函数就行了。这个工厂函数必须放回一个新的过滤器函数,这个过滤函数的第一个参数接受的是输入。任何过滤器参数都会被当成附加的参数传递给过滤器。下面的例子展示了逆转字符串文本。另外,它有条件地将文本大写并填上颜...
蒙奇·D·撸码客 发布于 2016-06-30 17:06:21
AngularJS过滤器是用来格式化输出数据的。除了格式化数据,过滤器还能修改DOM。这使得过滤器通常用来做些如“适时的给输出加入CSS样式”等工作。比如,你可能有些数据在输出之前需要根据进行本地化。你可以向下面这样使用链式的过滤器来传递表达式:name|uppercase这个表...