我有angularjs項目,在主頁上我想從我的mongodb數據庫中顯示幾個選定的文章(對象)。在數據庫中,我有兩個集合 - 一個是包含幾百個單獨文章(對象)的「文章」,另一個是「主頁」,其中我只有十個對象,只有'articleID'鍵,其中包含對象的ID第一次收集。我的問題是,當我硬編碼控制器中的articleID所有工作正常,但是當我首先從'homepage'集合中獲取articleID,然後將該值傳遞給從第一個集合中獲取選定對象的函數'getArticle01'它不起作用。請,任何人都可以讓我知道我做錯了什麼?如何在angularjs控制器中將參數值傳遞給服務函數?
這裏是我的代碼:
var articleId01 = '58da9967a8bccd763c48bdc0'; // if i hardcode article id here, all works fine
HomepageService
.findAllHomepages() // returns array with 10 objects from my api
.then(function(homepages) {
var articleId01 = homepages.data[0].articleID;
console.log(articleId01); // so far, all is ok, console logs value: '58da9967a8bccd763c48bdc0'
}, function(error) {
console.log('error', error);
})
.then(function(){
function getArticle01() {
HomepageService
.findHomepageById(articleId01) // unfortunately, value is not passed here
// .findHomepageById('58da9967a8bccd763c48bdc1') // if value is hardcoded, all is ok
.then(function(response) {
console.log(response.data);
}, function(error) {
console.log('error', error); // here is error from console: Object {data: null, status: -1, config: Object, statusText: "", headers: function}
});
}
getArticle01();
});
您重新定義articleId01這裏:VAR articleId01 =主頁。數據[0] .articleID;所以當你在另一個函數中需要它時,它不存在。也許使用範圍變量? – Groben