1
我正在使用Angular构建脱机HTML页面,并使用ydn-db进行脱机存储。将一个函数的局部变量返回到另一个函数
我有像这样一个数据库服务,
demoApp.SericeFactory.database = function database() {
var database = {
dataStore: null,
admins: [],
students: [],
errors: [],
getadmindata: function(username) {
self = null, that = this
database.dataStore.get('admins', username).done(function(record) {
that.self = record;
return record;
}).fail(function(e) {
console.log(e);
database.errors.push(e);
});
return self; //This does not change.
}
};
database.dataStore = new ydn.db.Storage('DemoApp');
angular.forEach(INITSTUDENTS, function(student) {
database.dataStore.put('students', student, student.matricno);
database.students.push(student);
});
angular.forEach(INITADMINS, function(admin) {
database.dataStore.put('admins', admin, admin.username);
database.admins.push(admin);
});
return database;
我也有一个控制器,尝试使用数据库;
function AppCntl ($scope, database) {
var user = database.getadmindata('user'); //I get nothing here.
}
我都试过了, 我试图做改变self
到var self
我试图分裂功能,像这样
rq = database.dataStore.get('admins', 'user');
rq.done(function(record), {
self = record;
alert(self.name) //Works.
});
alert(self) //Doesn't work.
我已经经历了这样的问题了此操作系统的StackOverflow,但没有任何事情似乎为我工作,或者我刚刚找错了地方。
谢谢。我必须检查使用if(!$ scope。$$阶段){$ scope。$ digest();}虽然没有工作。我返回数据库,然后检查它是否在范围内完成。 – Bond