发表于: 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的属性或者方法的。
// 但是,实际项目中,页面1controller是有可以需要页面2controller的。
// 用来存储临时数据,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;



返回列表 返回列表
评论

    分享到