2016-04-30 103 views
3

我的手機應用程序中有以下的Typescript類,它的Click功能是點擊按鈕觸發的。感興趣的是todoItemTable.read,它從我的雲端後端獲取ToDoItems數組。當前的代碼工作並吐出了8個todo項目的文本,但我想將文本存儲在一個數組中,所以如果您看到註釋掉的內容,我將其推送到todos,那就是我認爲我會如何處理這個問題。然而,那行代碼讓循環運行,所以我得到第一個ToDo項目記錄兩次,然後沒有別的。應用程序不會掛起,並且沒有錯誤。JavaScript數組推斷循環?

export class HelloWorldModel extends Observable { 
    public todos: any[]; 

    constructor() { 
    super(); 
    } 

    Click() { 
    var client = new MobileServiceClient("https://example.azurewebsites.net"); 
    console.log("CLIENT"); 
    var todoItemTable = client.getTable("TodoItem"); 
    console.log("Table"); 
    this.todos = []; 
    todoItemTable.read<TodoItem>().then(function (results) { 
     // results is array of TodoItem-s 
     console.log(results.length); 
     console.log(results[0].text); 
     for (let i of results) { 
     console.log(i.text); 
     //this.todos.push(i.text); 
     } 
    }); 
    } 

} 

怎麼回事?

回答

0

我有同樣的問題,每當我試圖在任何地方我loop它會運行通過使用array.push()一次然後停止。我通過將該陣列實例化爲一個空數組來解決此問題(array: string[ ] = [ ])我的loop的外部。然後實例化新的字符串以推送到循環內部的數組。 希望這可以幫助任何人在那裏=)