angularjs 覆盖服务 setter 和 getter
angularjs override service setter and getter
我是 JS 新手 angular,
我在 angular 中有一个 currentUser
服务...它应该将检索到的当前用户设置为 localStorage
以在页面刷新之间保持它
服务定义如下
var currentUserSrvc = function() {
// some logic on how to save the user to localStorage
return {
user: {}
};
};
angular.module('app').factory('currentUser', currentUserSrvc);
我想覆盖此服务的 setter 和 getter 以与 localStorage
一起工作...但不手动添加 setter 和 getter
不介意 localStorage 内部如何工作
// I just want to use it like
currentUser.user = response.user
// instead of using it like (given that I'll provide a setter and a getter methods)
currentUser.setUser(response.user)
可以使用 angular js 吗?
这是您要找的吗?
var currentUserSrvc = function() {
// some logic on how to save the user to localStorage
return {
get user() {return localStorage.user;},
set setUser(user) {localStorage.user = user}
};
};
angular.module('app').factory('currentUser', currentUserSrvc);
这就是您在 javascript 中使用 getter 和 setter 的方式:
所以你会:
currentUser.user //retrieves localStorage.user
currentUser.setUser = "myUser" //sets localStorage.user to "myUser"
编辑:您可以这样做。
var currentUserSrvc = function() {
var currentUser = {}
Object.defineProperty(currentUser, "user", {
get: function() {return localStorage.user; },
set: function(user) { localStorage.user = user; }
})
return currentUser;
};
angular.module('app').factory('currentUser', currentUserSrvc);
所以你会:
currentUser.user //retrieves localStorage.user
currentUser.user = "myUser" //sets localStorage.user to "myUser"
EDIT2:或者您甚至可以这样做:
var currentUserSrvc = function() {
// some logic on how to save the user to localStorage
return {
get user() {return localStorage.user;},
set user(user) {localStorage.user = user}
};
};
angular.module('app').factory('currentUser', currentUserSrvc);
我是 JS 新手 angular,
我在 angular 中有一个 currentUser
服务...它应该将检索到的当前用户设置为 localStorage
以在页面刷新之间保持它
服务定义如下
var currentUserSrvc = function() {
// some logic on how to save the user to localStorage
return {
user: {}
};
};
angular.module('app').factory('currentUser', currentUserSrvc);
我想覆盖此服务的 setter 和 getter 以与 localStorage
一起工作...但不手动添加 setter 和 getter
不介意 localStorage 内部如何工作
// I just want to use it like
currentUser.user = response.user
// instead of using it like (given that I'll provide a setter and a getter methods)
currentUser.setUser(response.user)
可以使用 angular js 吗?
这是您要找的吗?
var currentUserSrvc = function() {
// some logic on how to save the user to localStorage
return {
get user() {return localStorage.user;},
set setUser(user) {localStorage.user = user}
};
};
angular.module('app').factory('currentUser', currentUserSrvc);
这就是您在 javascript 中使用 getter 和 setter 的方式:
所以你会:
currentUser.user //retrieves localStorage.user
currentUser.setUser = "myUser" //sets localStorage.user to "myUser"
编辑:您可以这样做。
var currentUserSrvc = function() {
var currentUser = {}
Object.defineProperty(currentUser, "user", {
get: function() {return localStorage.user; },
set: function(user) { localStorage.user = user; }
})
return currentUser;
};
angular.module('app').factory('currentUser', currentUserSrvc);
所以你会:
currentUser.user //retrieves localStorage.user
currentUser.user = "myUser" //sets localStorage.user to "myUser"
EDIT2:或者您甚至可以这样做:
var currentUserSrvc = function() {
// some logic on how to save the user to localStorage
return {
get user() {return localStorage.user;},
set user(user) {localStorage.user = user}
};
};
angular.module('app').factory('currentUser', currentUserSrvc);