我是一个有角度的新手,我正在构建一个应用程序,有一件事让我感到困惑的是有几种方法可以定义服务,而且我从这个链接中读到更多:如何定义服务 然后它似乎没有大的区别定义服务的方式.
但我刚才注意到一个与众不同的区别:
看到我从这里得到的这项服务http://jsfiddle.net/2by3X/5/
var app = angular.module('myApp', []);
app.service('test', function($timeout, $q) {
var self = this;
this.getSomething = function() {
return self.getData().then(function(data) {
return self.compactData(data);
});
};
this.getData = function() {
var deferred = $q.defer();
$timeout(function() {
deferred.resolve("foo");
}, 2000);
return deferred.promise;
};
this.compactData = function(data) {
var deferred = $q.defer();
console.log(data);
$timeout(function() {
deferred.resolve("bar");
}, 2000);
return deferred.promise;
};
});
Run Code Online (Sandbox Code Playgroud)
如果我使用"factory"定义此服务,如下所示,一个函数不能调用该服务的其他功能.
app.factory('test', function($timeout, $q) {
return {
getSomething : function() {
return getData().then(function(data) {
return compactData(data); …Run Code Online (Sandbox Code Playgroud) 我使用Angular.js制作了一页常规应用程序,用户登录后,如果在浏览器中刷新,签名信息消失,登录状态重置,我必须再次登录,我该如何保留登录状态事件在浏览器中刷新?
谢谢你的帮助