저는 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 만의 속삭임이 보인다 나를 위해 일하고 있거나 어쩌면 나는 틀린 장소를보고 있었을 것입니다.
http://dev.yathit.com/demo/feature-matrix/index.html 감사합니다. 나는 if (! $ scope. $$ phase) {$ scope. $ digest();}를 사용하여 검사해야한다. 데이터베이스를 반환 한 다음 범위에서 완료되었는지 확인했습니다. – Bond