2012-08-02 2 views
0

나는 phonegap 응용 프로그램 내에서 사용하기 시작한 정말 기본적인 EmberJS 응용 프로그램을 가지고 있습니다. 다음 코드는 FF 4에서 훌륭하게 작동하지만 Chrome 및 Safari에서는 핸들 막대 섹션에서보기가 업데이트되지 않습니다.EmberJS가 웹킷 브라우저의 HTML/핸들 바에서 렌더링되지 않는 이유

기본 JS 파일의 코드는 다음과 같습니다.

(function(window) { 
    function Main() { 
    MainApp = Ember.Application.create({ 
     appname: "My App", 
     ready: function() { 
     console.log("hello from ember"); 
     app.initialize(); 
     app.deviceready(); 
     } 
    }); 
    } 
    window.Main = Main; 
}(window)) 

가 나는 기능을 실행 자체를 제거하는 경우가

MainApp = Ember.Application.create({ 
    appname: "My App", 
    ready: function() { 
    console.log("hello from ember"); 
    app.initialize(); 
    app.deviceready(); 
    } 
}); 

그래서 내가 진짜 질문은 왜 Ember.Application.create 포장 않습니다 추측 웹킷에서 잘 렌더링 발견() Webkit에서 Main() 함수로이 문제가 발생합니까? 내 index.html 파일에서

나는 main.js

<script type="text/javascript"> 
    function init() { 
    var mainApp = new Main(); 
    } 
</script> 

그럼 내 핸들 코드가 그렇게 보이는

을 실행하려면 다음 스크립트 블록을 가지고있다.

<script type="text/x-handlebars"> 
    <h1>hello from {{MainApp.appname}}</h1> 
</script> 

답변

1

이 솔루션은

(function(window) { 
    function Main() { 
    MainApp = Ember.Application.create({ 
     appname: "My App", 
     ready: function() { 
     console.log("hello from ember"); 
     app.initialize(); 
     app.deviceready(); 
     } 
    }); 
    } 
    window.Main = Main; 
}(window)) 

을하고

(function(window) { 
    MainApp = Ember.Application.create({ 
    appname: "My App", 
    ready: function() { 
     console.log("hello from ember"); 
     app.initialize(); 
     app.deviceready(); 
    } 
    }); 
})(window) 

이 여전히 창으로 MainApp를 할당 할 수 있도록하는 것입니다/당신이 원하는,하지만 같은 글로벌 컨텍스트의 종속성을 제거 초기화되지 않은 함수. 나는 어떻게 당신이 HTML에서 init() 함수를 호출하고 있었는지 모르겠다. 실제로는 결코 실제로 new Main() 객체를 초기화하지 않는 것처럼 보인다.

관련 문제