【发布时间】:2013-10-04 06:50:14
【问题描述】:
我正在使用 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 上遇到过类似的问题,但似乎没有什么对我有用,或者我只是找错地方了。
【问题讨论】:
标签: javascript angularjs scope angularjs-service ydn-db