angularJS1笔记-(7)-控制器的合理使用(显示和隐式的依赖注入)
AngularJS依赖注入
1.隐式注入:不需要开发人员干预,angularJS自动根据参数的名称识别和注入数据
app.controller("myCtrl".function($scope) {
$scope.name="xiaoming"
})
隐式注入如果一但要进行优化,就会存在问题
2.显式注入:开发人员通过字符串描述,告诉angular需要注入的对象名称,这样JS
在进行优化的过程中,对字符串是不会压缩的,显式的进行依赖描述
app.controller("myCtrl",["$scope",function(s){
s==$ssope
}])
项目实际开发过程中使用显式注入方式! html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<div ng-app="myApp">
<div ng-controller="secondController"> </div>
<div ng-controller="otherController"> </div>
</div> <script type="text/javascript" src="../../vendor/angular/angularJs.js"></script>
<script type="text/javascript" src="app/index.js"></script> <script>
</script> </body>
</html>
js:
var myApp = angular.module('myApp', [], function () { })
//隐式的依赖注入
// .factory('CustomeService', function ($window) {
// console.log($window);
// })
//显示的依赖注入
.factory('CustomService',['$window',function (a) {//a参数就是$window
console.log(a);
}])
//隐式的依赖注入
.controller('secondController', function ($scope, CustomService) { })
// //显式的依赖注入(推荐使用)
// .controller('secondController', ['$scope', '$filter', function (a, b) {
// console.log(b('json')([1, 2, 3, 4, 5]));
// }]) function otherController(a) {
console.log(a);
}
otherController.$inject = ['$scope']; //此处的$scope就是上面的参数a
angularJS1笔记-(7)-控制器的合理使用(显示和隐式的依赖注入)的更多相关文章
- Intent 显示意图 隐式意图
//显式意图 :必须指定要激活的组件的完整包名和类名 (应用程序之间耦合在一起) // 一般激活自己应用的组件的时候 采用显示意图 //隐式意图: 只需要指定要动作和数据就可以 ( 好处应用程序之 ...
- C#接口的显示和隐式实现
早上骑车上班走到半路发现手机忘带了,这年代兜里没装一分现金,吃饭都要刷手机,上班时间无聊了不能玩手机更是大问题,所以果断掉头拿手机.取完手机刚出门看这天阴沉沉的貌似要下雨,没雨衣,骑车又不能打伞,上次 ...
- C# 转换符的重载 显示、隐式转换
class Complex { //保存转换的值 Int32 v; public Complex(Int32 x) { v = x; } public Int32 ToInt32() { return ...
- Android中显示和隐式Intent的使用
显示启动activity ...
- label标签的显示和隐式关联问题
按钮的html <!-- 学校 --> <div class="layui-inline"> <label class="layui-for ...
- Android中Intent的显示和隐式使用
Android应用程序中组件之间的通信都少不了Intent的使用,Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件, ...
- 【Selenium】显示、隐式等待
显示等待 WebDriverWait 超时抛出TimeOutException,默认500毫秒 public class WaitToReturnElement { /* * 设置超时时间为5秒,返回 ...
- interface Part3(实现:显示和隐式)
1. 接口的实现实际上和类之间的继承是一样的,也是重写了接口中的方法,让其有了具体的实现内容. 2. 但需要注意的是,在类中实现一个接口时必须将接口中的所有成员都实现,否则该类必须声明为抽象类,并将接 ...
- python+selenium基础篇,三种等待方式,显示、隐式、强制等待
1.显示等待: from selenium import webdriver from time import sleep from selenium.webdriver.support.ui imp ...
随机推荐
- Firebird3 多文件支持
默认建立数据库时为一个数据文件,但文件不能无限大,故可以为数据库增加新文件: isql 打开数据库,并conn到指定数据库,然后 Alter databaseAdd file ‘d:\data\d2. ...
- 2017-2018-1 20155231 《信息安全系统设计基础》实现mypwd
2017-2018-1 20155231 <信息安全系统设计基础>实现mypwd Linux pwd命令用于显示工作目录. 执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称. p ...
- PyQt5 笔记(03):弹出窗口大全
本文实现了PyQt5个各种弹出窗口:输入框.消息框.文件对话框.颜色对话框.字体对话框.自定义对话框 其中,为了实现自定义对话框的返回值,使用了信号/槽 本文基于 windows 7 + python ...
- Dlib库中实现正脸人脸关键点(landmark)检测的测试代码
Dlib库中提供了正脸人脸关键点检测的接口,这里参考dlib/examples/face_landmark_detection_ex.cpp中的代码,通过调用Dlib中的接口,实现正脸人脸关键点检测的 ...
- 1-[Mysql]-数据库介绍及安装
1.数据库概述 1.数据库服务器: 运行数据库管理软件的计算机 2.数据库管理软件:mysql oracle db2 sqlserver 3.库:文件夹 4.表:文件 5.记录:事物的一系列典型特征: ...
- Gitlab+Jenkins学习之路(十)之Jenkins按角色授权和Pipeline
一.Jenkins按角色授权 当一个公司的开发分为多个组别,或者是多个项目等等.用于公司内部测试,让开发人员自行构建测试,此时不可能让所有的开发都在公用一个构建,这样变得很混乱,为了解决这一问题,je ...
- UWP 记一次WTS 和 UCT翻车经历
这次翻车,真的,在网上绝对找不到回答的. 只有在WTS的Issues讨论中才找到,哈哈 不过这个应该比较少遇到吧,据我所知,提出Issue那个大胸弟和我都遇到了... 翻车具备的条件如下: 1. 使用 ...
- [Processing]点到线段的最小距离
PVector p1,p2,n; float d = 0; void setup() { size(600,600); p1 = new PVector(150,30);//线段第一个端点 p2 = ...
- move.js运动插件
move.js 运动插件是一款针对元素动画效果的插件.可以运用此插件制作出各类元素效果. 插件GitHub地址:https://github.com/visionmedia/move.js 下面整理学 ...
- 如何把word ppt 思维导图这类文件转化为高清晰度的图片(要干货只看粗体黑字)
我使用思维导图做学习笔记,最终绘制了一张比较满意的思维导图,想要分享出去,但由于现在思维导图软件众多,成品文件格式差别蛮大,不利于传播和打开,所以需要转化为普通图片,但笔者使用的导图软件导出转化成的图 ...