发表于: 2017-05-24 23:30:11

1 892


今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了Margin)

将侧边栏做成指令 ,实现刷新保持状态
明天计划的事情:(一定要写非常细致的内容) 

了解富文本编辑器
遇到的问题:(遇到什么困难,怎么解决的)

 AngularJS 的 factory 、 service 和 provider这三种都是提供服务的方式, 他们到底有什么区别呢?

factory

factory 可以认为是设计模式中的工厂方法, 就是你提供一个方法, 该方法返回一个对象的实例, 对于 AngularJS 的 factory 来说, 就是先定义一个对象, 给这个对象添加属性和方法, 然后返回这个对象, 例如:

// 过滤 Article  类型
.filter("articleTypeFilter", function () {
   const articleType ['首页Banner''找职位Banner''找精英Banner''行业大图'];
   return function (type) {
       return articleType[type];
   }
})
var app angular.module('MyApp'[]);
app.factory('MyFactory', function () {
   // define result object of factory.
   var result {};
   // add some property and method to the object
   result.greeting 'Hello from factory.';
   // return the object;
   return result;
});

最后 controller 拿到的就是 数组中根据下表返回的数组元素

articleType[type]

对象

service

service 通过 new 运算符进行实例化, 可以认为是一个类型, 只要把属性和方法添加到 this 对象上即可, 不用显式返回什么对象, 比如下面的代码:

angular.module('admin')
.factory('ArticleManagementService', function ($httppathProject) {
   return {
       //获取
       getArticleList: function (params) {
           return $http.get(pathProject.getArticlelist_url{paramsparams});
       },
       //新增
       addArticle: function (params) {
           return $http.post(pathProject.addArticle_urlparams);
       },
       //删除
       deleteArticle: function (id) {
           return $http.delete(pathProject.deleteArticle_url(id));
       },
       //获取单个
       getArticle: function (id) {
           return $http.get(pathProject.getArticle_url(id));
       },
       //编辑
       editArticle: function (idparams) {
           return $http.put(pathProject.editArticle_url(id)params);
       },
       //修改article的上架/下架
       changeArticleStatus: function (idstatus) {
           return $http.put(pathProject.changeArticleStatus_url(idstatus));
       }
   }
});


controller 主要就是就是调用后台接口获取的数据


provider

与 factory 和 service 稍有不同的是, provider 必须提供一个 方法, 该方法和 factory 要求是一致的, 


最后 controller 拿到的对象就是 provider 的 方法返回的对象, 相当于下面的代码:


收获:(通过今天的学习,学到了什么知识)

使用 factory、 service 与 provider

factory、 service 与 provider 的使用都是通过 AngularJS 的依赖注入使用, 比如:

// inject factory, service and provider to a controller 

angular.module('admin')
   .controller('articleListCtrl', function ($scope, FileUploader, $state, ArticleManagementService, $rootScope) {

provider 可以在应用启动时进行配置

provider 的特殊之处就是可以在 module 启动时进行配置, 从而达到特殊的用途, 比如 可以在启动时调用这个方法, 进行一些额外的初始化工作: 可以 module 启动时来调用这个方法, 实现对 provider 的配置




返回列表 返回列表
评论

    分享到