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