AnulgarJS -服务中的对象参数不改变
AnulgarJS - Object parameters in service not changing
我在使用angular的服务时遇到了一些问题。
基本上我有一个服务,我用它作为用户特定参数的常量类,我将这些存储在从cookie读取值的变量中。
这是我的服务:
shoutApp.service('userConfig', function (userService, config) {
this.USER_ID = $.cookie('shoutUserObj')._id;
this.USER_USERNAME = $.cookie('shoutUserObj').username;
this.USER_PASSWORD = $.cookie('shoutUserObj').password;
this.USER_JOINDATE = $.cookie('shoutUserObj').joinDate;
this.USER_TWITTER = $.cookie('shoutUserObj').twitter;
this.USER_FACEBOOK = $.cookie('shoutUserObj').facebook;
this.USER_GOOGLE = $.cookie('shoutUserObj').google;
this.refreshUserObj = function (callback) {
console.log("Starting refresh");
//This function retrieves new user data
userService.requestUserObj($.cookie('shoutUserObj')._id, function (code, userObj) {
if (code === config.CODE_AJAX_SUCCESS) {
//Here I delete the old cookie and set a new one with the same name
$.removeCookie('shoutUserObj');
$.cookie.json = true;
$.cookie('shoutUserObj', userObj, { path: '/', expires: 7 });
//When I log the new values of the cookie at this point they changed
}
});
}
});
我还尝试将这些存储在一个对象中,但每次我改变参数时,它们只在类内改变(就像当我注销我的刷新函数中的新变量时,它们改变了,但是当我试图通过返回值从控制器访问它们时,它们没有改变)。
示例控制器:
shoutApp.controller('profileController', function ($scope, config, userConfig) {
console.log("Username: " + userConfig.USER_USERNAME);
//This value allways stays the same, even when I changed the cookie
});
我的目标是在所有使用用户服务的控制器中获得更改的参数,我如何实现这一点?
非常感谢任何帮助!
服务是单例的,因此你的userConfig
属性的值将始终是服务初始化时的值。
在服务中,如果您希望每次都检索一个新值,则使用函数
this.getUSER_USERNAME = function() {
return $.cookie('shoutUserObj').username;
}
代替属性
this.USER_USERNAME = $.cookie('shoutUserObj').username;
则示例控制器将是:
shoutApp.controller('profileController', function ($scope, config, userConfig) {
console.log("Username: " + userConfig.getUSER_USERNAME());
//This will return the current value of the cookie
});
相关文章:
- 如何将查询参数设置为我的所有路线,当它改变时-在恩伯
- d3通过改变参数化函数使折线图水平动画化
- 如何在mongodb / mongoose查询中改变基于参数的结果位置
- 改变& lt; video>参数onclick使用JavaScript
- 可能改变一个参数php?从控制器
- 当参数值改变时如何运行函数
- 防止UglifyJS改变函数参数'的名字
- AngularJS指令——在作用域参数改变时重新运行link函数
- 如何改变javascript函数在html中编写的参数
- 当改变url参数时,React路由器不会重新加载组件
- 为什么在参数中被处理的组件会改变
- Javascript函数何时执行?PHP变量不会改变传入的参数
- 我如何改变一个宽度参数在jQuery给定的像素整数成百分比
- AnulgarJS -服务中的对象参数不改变
- 一键改变功能参数
- Javascript改变Request Header: accept-language参数
- Angular在改变路由参数时重新加载页面
- Jqgrid改变列排序参数(sidx)的值
- 我可以改变参数吗;锁定"
- 缺少)在参数列表之后-我如何在这个简单的代码中修复它我一直在改变事情,得到了dif错误,但无法解决这个问题