AngularJS中的隐式和显式依赖注入

在之前学习AngularJS的过程中,都是用到了显式依赖注入,比如:

<script type="text/javascript">
    angular.module(‘app‘, [])
    .controller(‘Controller1‘, function($scope) {
        $scope.something = ‘hello world‘;
    });
</script>

依赖注入$scope。这么写有个弊端,在发布的时候,往往要压缩JavaScript代码,压缩时,会替换掉变量名。比如$scope会替换成长度更小的a,但是$scope这个名字又是不能改动的,否则会无法识别。所以这种隐式的依赖注入方法不好。

AngularJS提倡用以下这种方法:

<script type="text/javascript">
    angular.module(‘app‘, [])
    .controller(‘Controller1‘, [‘$scope‘, function(parm){
        parm.something = ‘hello world‘;
    }]);
</script>

这种方法是显式的依赖注入,把$scope当作一个字符串,则压缩时不会被替换掉,随便命名一个参数parm,在函数体中运用时同名即可。

不仅是controller,其它需要依赖注入的地方都提倡用显式的方法。

时间: 2024-10-06 20:11:35

AngularJS中的隐式和显式依赖注入的相关文章

当 IDENTITY_INSERT 设置为 OFF 时,不能向表 &#39;#TT&#39; 中的标识列插入显式值。 sql server 临时表

当 IDENTITY_INSERT 设置为 OFF 时,不能向表 '#TT' 中的标识列插入显式值.我是在SqlServer写存储过程中遇到的这个错误,当时就心想:临时表怎么会有主键呢,我也没有设置主键.然后我就和同事一块调试,终于发现了.原因就是我把真实的数据表中id(其实就是主键)取出来放到临时表(#TT)中,一开始是以为把主键的属性取出来了.后来又一起调试,发现不是那么回事,1.原来SqlServer会自动给临时表设置主键,如果你要插入数据的话,还要打开主键,这样你才能插入数据.“当 ID

仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表中为标识列指定显式值问题

今天在处理数据库过程中碰到这样的问题在插入一条数据到表中 系统报这样的错误 仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表中为标识列指定显式值问题 表有一列是自增长的标识列 ”字段1“ 如果这样插入 SET IDENTITY_INSERT platform..as_userinfo ON INSERT INTO platform..As_UserInfo values('110','张飞','男',20120401,18,'团员',2008-3-1) SET I

当 IDENTITY_INSERT 设置为 OFF 时,不能为表中的标识列插入显式值

{"当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'OrderList' 中的标识列插入显式值"} 对于这个异常可以从两个角度来处理:A:数据库执行语句  B:直接修改NHibernate中持久化类映射配置文件id节点 A数据库执行语句: 问题描述:当在数据库表主键设计为 (Orderid  int identity primary key),相对这个主键IDENTITY_INSERT默认设置为OFF,就是不能够显示插入主键id的值,例子如下: insert int

当 IDENTITY_INSERT 设置为 OFF 时,不能向表 &#39;OrderList&#39; 中的标识列插入显式值

问题描述:在SQL SERVER 2008中,向数据表中字段插入数据时,会报错,错误如下: 当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'OrderList' 中的标识列插入显式值. 解决方案: 1 --允许将显式值插入表的标识列中 ON-允许 OFF-不允许 2 set identity_insert OrderList ON--打开3 4 insert into OrderList(id,ordername,createdate) 5 values(4520,'set'

当 IDENTITY_INSERT 设置为 OFF 时,不能为表 &#39;T_Shell&#39; 中的标识列插入显式值。

--允许将显示值插入表的标识列中-ON:允许 OFF:不允许set identity_insert T_shell ONset identity_insert T_Shell OFF 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'T_Shell' 中的标识列插入显式值.

当 IDENTITY_INSERT 设置为 OFF 时,不能为表 &#39;tb_MyInvoices&#39; 中的标识列插入显式值

默认情况下,IDENTITY_INSER就是off 这种情况下,你写insert 语句时,identity栏位,不要写值,系统会自动帮你写入. 举例说明: create table #aa(id int identity(1,1),dt datetime,pay int) go insert into #aa(dt,pay)values('2012-4-12',100) --不能向 id栏位写值,系统会自动写 go insert into #aa(id,dt,pay)values(100,'20

当 IDENTITY_INSERT 设置为 OFF 时,不能为表‘XXX’中的标识列插入显式值。

在创建事务复制时,很多时候不一定使用快照进行初始化,而是使用备份还原初始化.当对有标识列(即identity的自增列)的表进行复制的时候,使用备份还原初始化搭建起来的复制常常就会报错,即:当 IDENTITY_INSERT 设置为 OFF 时,不能为表‘XXX’中的标识列插入显式值.这个错误是当创建表的时候,有一项’标识规范‘中的’不用于复制‘默认为‘否’,当发布端插入数据时导致,右键表,选择设计选项,如图 当使用备份还原进行初始化,订阅端的这张表该选项也是‘否’,因此就会报错.在不删除此复制的

仅当使用了列的列表 并且 identity_insert 为 on 时 才能在表 中为标识列指定显式值

当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'products' 中的标识列插入显式值.” 示例: 1.首先建立一个有标识列的表:CREATE TABLE products (id int IDENTITY PRIMARY KEY, product varchar(40)) 2.尝试在表中做以下操作:INSERT INTO products (id, product) VALUES(3, 'garden shovel') 结果会导致错误:“当 IDENTITY_INSERT

仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表&#39;xxxx&#39;中的标识列指定显式值

执行以下sql INSERT INTO [Country] VALUES (1, N'中国', N'China', N'CN'); 提示错误 仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'xxxx'中的标识列指定显式值 解决方法: 在执行sql前后分别加:SET IDENTITY_INSERT [dbo].[Country] ON 和 SET IDENTITY_INSERT [dbo].[Country] OFF 同时修改sql语句:INSERT INTO [Co

android之intent显式,显式学习

intent,意图 当从一个Activity到另一个Activity时调用,这里重点学习显式,隐式的使用 使用语句上的区别: 隐式意图:                 显式意图: setAction                                            跳转到其他应用:setClassName setData 跳转到自己应用:setClass addCategory(当为DEFAULT时可无) 一.无参时的显式.隐式举例 显式-到自己应用(最简单情况): /*