将值设置为 var 后,它仍然包含其默认值
After setting a value to a var it still contains its default value
在我的模型中,我将某些变量默认为 null
angular.module('qbs.models').service('loginModel', function () {
this.name = 'loginModel';
var data = {
//.......
loggedIn: null,
loggedOut: null
//.......
};
this.set = function (key, value) {
data[key] = value;
};
this.get = function (key) {
return data[key];
};
this.getAll = function () {
return data;
};
});
稍后在成功登录后我将loggedIn
设置为true
loginModel.set('loggedIn', true);
当我用 console.log
读出模型时,属性 设置正确。但是,当使用
检索值时
`loginModel.get('loggedIn');`
我还是null
问题是这怎么可能。好像我指的是另一个对象上的 属性?!
你应该改变
var data = {
//.......
loggedIn: null,
loggedOut: null
//.......
};
到
this.data = {
//.......
loggedIn: null,
loggedOut: null
//.......
};
应该改变data
的值
然后你可以使用 loginModel.data.loggedIn
.
您的 loginModel 服务调用是连续的吗?可能是异步问题...
无论如何,为了避免'this'范围冲突尝试使用[=21=外部化服务方法(get,get,getAll...) ] 语句,像这样:
angular.module('qbs.models').service('loginModel', function () {
var data = {
//.......
loggedIn: null,
loggedOut: null
//.......
};
function set (key, value) {
data[key] = value;
};
function get (key) {
return data[key];
};
function getAll () {
return data;
};
return {
name: 'loginModel',
get: get,
set: set,
getAll: getAll
};
});
在我的模型中,我将某些变量默认为 null
angular.module('qbs.models').service('loginModel', function () {
this.name = 'loginModel';
var data = {
//.......
loggedIn: null,
loggedOut: null
//.......
};
this.set = function (key, value) {
data[key] = value;
};
this.get = function (key) {
return data[key];
};
this.getAll = function () {
return data;
};
});
稍后在成功登录后我将loggedIn
设置为true
loginModel.set('loggedIn', true);
当我用 console.log
读出模型时,属性 设置正确。但是,当使用
`loginModel.get('loggedIn');`
我还是null
问题是这怎么可能。好像我指的是另一个对象上的 属性?!
你应该改变
var data = {
//.......
loggedIn: null,
loggedOut: null
//.......
};
到
this.data = {
//.......
loggedIn: null,
loggedOut: null
//.......
};
应该改变data
的值
然后你可以使用 loginModel.data.loggedIn
.
您的 loginModel 服务调用是连续的吗?可能是异步问题...
无论如何,为了避免'this'范围冲突尝试使用[=21=外部化服务方法(get,get,getAll...) ] 语句,像这样:
angular.module('qbs.models').service('loginModel', function () {
var data = {
//.......
loggedIn: null,
loggedOut: null
//.......
};
function set (key, value) {
data[key] = value;
};
function get (key) {
return data[key];
};
function getAll () {
return data;
};
return {
name: 'loginModel',
get: get,
set: set,
getAll: getAll
};
});