每當我調用cardslength變量或只是cards.length,我都會在函數之外得到undefined。這是否意味着我需要使用$ scope?我正在使用角1.0.5順便說一句,因爲這是我正在遵循的教程的一部分,我需要使用該版本。Angularjs變量未定義在函數外部
這是我的代碼:
eventsApp.factory('eventData', function ($resource, $q) {
var resource = $resource('/data/event/:id', {id: '@id'});
//////////////////////This is the part that doesn't seem to be working//////////
var cardslength
var cards = resource.query(function() {
cardslength = cards.length;
});
console.log(cardslength);
console.log(cards.length);
////////////////////////////////////////////////////////////////////////////////
return {
getEvent: function() {
var deferred = $q.defer();
resource.get({id: 1},
function (event) {
deferred.resolve(event);
},
function (response) {
deferred.reject(response);
});
return deferred.promise;
},
save: function(event) {
var deferred = $q.defer();
event.id = 1234;
resource.save(event,
function(response) { deferred.resolve(response);},
function(response) { deferred.reject(response);}
);
return deferred.promise;
}
};
});
這意味着resource.query()不返回任何東西,或者你的回調是執行返回的東西之前,整體服務質量差實現 – Ahmad 2014-08-27 10:16:02
在函數內部它工作正常 – user1442232 2014-08-27 10:18:36
在剛剛定義的函數之前,它有未定義的邏輯,在哪裏你可以訪問它,但它不起作用?還記得'cardslength'只有在query()完成時纔會有值 – Ahmad 2014-08-27 10:20:34