2014-01-08 4 views
0

배열의 데이터를 새 View 객체로 전달하려고하는데 'accounts.length'가 6을 반환하더라도 루프 만 get이 한 번 실행됩니다.티타늄 for 루프는 한 번만 실행됩니다.

var title; 
var id; 
var button; 
var v; 
//alert(accounts.length); --> 6 
for(i=0; i<accounts.length; i++) { 

    title = accounts[i].title; 
    id = accounts[i].id; 
    button = Titanium.UI.createButton({ 
     backgroundImage: 'images/List.png', 
     height:37, 
     width: 37, 
    }); 
    menuBtns.push(button); 
    v = new HomeView({menuBtn:button, id:id}); 
    //alert(title'); --> only once 
    data.push({ 
     title:title, 
     view:v, 
     dataType:'dashboardapplication' 
    }); 
} 

계정 HomeView 간단한보기 위에 층 데이터가 이미 (푸시 문 동일 포맷) 데이터를 포함하는 배열 간단한 다차원 배열이다. 누구든지 동일한 문제가 발생 했습니까?

답변

0

표시된 코드에 루프가 계속되지 않도록하는 내용이 없습니다. 코드에서 누락 된 변수와 함수를 추측하면 다음과 같은 결과가 나옵니다. 성공적으로 실행되고 6 개의 루프를 통과합니다. 이 때문에 코드의 다른 부분에 뭔가 잘못 될 수 있습니다. try {} catch (e) { alert(e); }에서 for 루프를 래핑 해보십시오. 보고있는 버그를 재현하는 간단한 예제를 찾아보십시오. 코드의 일부를 제거하고 끝내지 못하게하는 부분을 확인하십시오.

var accounts = [ 
     { title: '1', id: '1' }, 
     { title: '2', id: '2' }, 
     { title: '3', id: '3' }, 
     { title: '4', id: '4' }, 
     { title: '5', id: '5' }, 
     { title: '6', id: '6' } 
    ], 
    menuBtns = [], 
    data = []; 

function HomeView(args) { 
} 

var title; 
var id; 
var button; 
var v; 
alert('accounts length: ' + accounts.length); --> 6 
for (i = 0; i < accounts.length; i++) { 
    title = accounts[i].title; 
    id = accounts[i].id; 
    button = Titanium.UI.createButton({ 
     title: title, 
     height: 37, 
     width: 37 
    }); 
    menuBtns.push(button); 
    v = new HomeView({menuBtn: button, id: id}); 
    alert('title: ' + title); // --> 1 through 6 
    data.push({ 
     title: title, 
     view: v, 
     dataType: 'dashboardapplication' 
    }); 
} 

alert('data length: ' + data.length); // --> 6 
+0

문제점을 파악했지만 아직 해결하지 못했습니다. 나는 그것을'try {} catch (e) {alert (e);}로 감쌀 수 없었다. } '예외를 catch 할 수 있기 때문에. 나머지 for 코드는 잘 실행되지만,'v = new HomeView ({menuBtn : button, id : id}); '가 루프 내부에서 실행 되 자마자 중단됩니다. – gaethofs

관련 문제