发表于: 2017-07-13 23:44:36
3 835
任务进展:
1、学习directive自定义封装指令,并尝试封装一些指令;
2、封装了一个service,不过好像不常用不到;
3、改掉了些BUG,代码写的太烂了;
遇到问题:
1、跨域好像出问题了,切换到列表页,请求数据又报错了,好像是路径改变了,对不上了Nginx配置的路径,明儿再看看;
明天计划:
1、学习directive;
2、继续写任务;
收获心得:
1、angular核心是DI(依赖注入)在需要使用的地方会自定注入service。简单的说,你创建了一个service,你可以在module作用域的controller,directive,甚至是其他service作为参数来轻松使用;也许你对上面出现的$scope认为他也是个service,其实这是一个例外,其并不是真正的service注入到我们的controller。
2、服务的本质是一个单例对象,既然是一个js对象,那么它肯定有属性和方法。当我们把服务注入到控制器中时,我们就可以调用服务,也就是一个js对象的属性和方法了。所谓地调用一个服务,其实就是使用一个js对象的属性或方法。
//controller是相对独立的,也就是说,两个controller之间,
// 内存是不共享的,这个controller是无法访问其他其他controller的属性或者方法的。
// 但是,实际项目中,页面1的controller是有可以需要页面2的controller的。
// 用来存储临时数据,controller互相交互,官方建议通过service来进行相互访问。
//也就是说,service是用于不同controller或者directive中用于共享数据的一种服务。
app.service('demoService',function () {
"use strict";
var privateAuthor = { //私有变量
name: 'jack',
sex: 'male'
};
this.publicAuthor = { //共有变量
name: 'rose',
sex: 'female'
};
this.getPriAuthor = function () { //获取私有变量
return publicAuthor;
}
});
//我们用app.service定义了一个服务,里面有一个私有属性,一个公有属性,
//以及一个获取私有属性的方法。现在 我们就可以在controller中使用这个service
3、逻辑写在controller或者是link的规则:
如果你想让指令暴露出一些方法给外部调用,那么就写指令中的controller里,//link是用来处理一些内部事务的,比如说给元素绑定事件,数据;这个是说,操作DOM就用指令,怎么操作就用controller;
评论