ng中我们可以自己定义自己的服务,服务中是一些使用重复率较高的方法。因此有效的使用服务可以提高开发速度。
ng中定义服务的方法有多种,service,factory,provide,在此我只介绍最长用的一种,利用factory
factory会以返回一个对象的形式
app.factory("服务的名字",[function(){ return{ getName:function(){ /........./ } } }]);
demo:
services/zct_get_my_right.js define(['app','jquery'], function (myapp) { myapp.factory('get_my_right', [function () { console.log("get_my_right"); var get_my_right={};//自己定义一个对象 //得到用户的权限 get_my_right.get_right=function(obj){ return(JSON.parse(JSON.parse(obj))); }, get_my_right=function(){ .... return ...... } return get_my_right;//返回一个对象 }]) })
使用:使用服务之前需引入
// 创意界面的权限控制器
define(["app",'services/zct_get_my_right'], function (myapp) { myapp.controller('ideas_first_ctrl', ['$scope','$rootScope','$state','get_my_right', function (s,rs,$state,getRight) { var my_right=getRight.get_right(localStorage.permission); console.log(my_right); if(my_right.ideas.view){//说明此用户有查看全部创意的权限的 // $state.go("home.ideas.allIdeas",{user_right:JSON.stringify(idea_right)}); s.can_see_all_idea=true; $state.go("home.ideas.allIdeas"); } else{//此用户没有查看全部创意的权限 //$state.go("home.ideas.myIdeas",{user_right:JSON.stringify(idea_right)}); s.can_see_all_idea=false; $state.go("home.ideas.myIdeas"); } }]) });