我一直在努力設置變量「列表名」範圍正確的驗證碼...試圖讓JavaScript變量範圍糾正這種trello.get代碼
var loadedAtriskopps = function(opps) {
var listName = 'empty';
$.each(opps.cards, function(index, opp) {
Trello.get(
'/cards/' + opp.id + '/list?fields=name', {fields: "id, name"}, function(list, err) {
var listName = list.name;
console.log(listName); //this returns the correct value
});
console.log(listName); //this returns 'empty'
var opp = $("<div class='row'><div class='col-xs-6'><p class='output'>" + opp.name + "</b><br>On List: " + listName + " </p></div> </div>");
$('#opps').append(opp)
});
};
裏面的Trello.get功能它正確返回,但不在其外。經過幾個小時的研究,仍然無法做到。
UPDATE:
每建議,嘗試這種代碼:
var loadedAtriskopps = function(opps) {
var listName = 'empty';
$.each(opps.cards, function(index, opp) {
console.log(opp.name); // returns correct value
Trello.get('/cards/' + opp.id + '/list?fields=name', {fields: "id, name"})
.success(function(list) {
listName = list.name;
console.log(listName); // // returns correct value
// next line errors "Uncaught TypeError: Cannot read property 'name' of undefined" but listName is correct
var opp = $("<div class='row'><div class='col-xs-6'><p class='output'>" + opp.name + "</b><br>On List: " + listName + " </p></div> </div>");
$('#opps').append(opp);
})
.error(function(err) {
console.log("An error: " + err);
});
});
};
好像我已經失去了opp
對象定義在成功回調。
SOLUTION:
var loadedAtriskopps = function(opps) {
var listName = 'empty';
$.each(opps.cards, function(index, opp) {
Trello.get('/cards/' + opp.id + '/list?fields=name', {fields: "id, name"})
.success(function(list) {
listName = list.name;
var card = $("<div class='row'><div class='col-xs-6'><p class='output'>" + opp.name + "</b><br>On List: " + listName + " </p></div> </div>");
$('#opps').append(card);
})
.error(function(err) {
console.log("An error: " + err);
});
});
};
謝謝Darren和安迪!
你重新分配在成功奧普對象 - 改變'變種opp'爲'無功somethingelse'然後'$(「#哎呀」)追加(somethingelse);' - 你爲什麼要使用相同的名稱? –
修好了!謝謝! –
感謝您的協助,@DarrenSweeney –