2016-03-12 40 views
3

我有一個應用程序已經內置Angular2,說一個基本的應用程序。當我將它與Cordova一起使用併爲它​​構建時...構建將安裝在系統中(調試版本),但會在加載...階段停止。我還需要其他什麼來確保我的ES5代碼正確初始化boot.js。構建並加載一個簡單的Angular2應用程序在科爾多瓦

我已經嘗試添加設備插件並更改代碼以及像這樣,但不能建立通過加載屏幕。

document.addEventListener("deviceready", onDeviceReady, false); 
function onDeviceReady() { 
    System.config({ 
     packages: {   
      app: { 
      format: 'register', 
      defaultExtension: 'js' 
      } 
     } 
     }); 
     System.import('app/boot').then(null, console.error.bind(console)); 
} 

任何幫助是值得歡迎的。

注:cordova emulate browser工作

更新2

我的HTML文件,而不

<html> 
<head> 
    <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *"> 
    <meta name="format-detection" content="telephone=no"> 
    <meta name="msapplication-tap-highlight" content="no"> 
    <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width"> 
    <link rel="stylesheet" type="text/css" href="css/index.css"> 
    <link href="assets/css/bootstrap.min.css" rel="stylesheet" type="text/css" /> 
    <link href="assets/css/style.css" rel="stylesheet" type="text/css" /> 
    <link href="assets/css/skins/skin-white.css" rel="stylesheet" type="text/css" /> 
    <title>Hello World</title> 
</head> 
<body> 
    <main-app> 
     <div class="app"> 
      <h1>Apache Cordova</h1> 
      <div id="deviceready" class="blink"> 
       <p class="event listening">Connecting to Device</p> 
      </div> 
     </div> 
    </main-app> 
    <head> 

    <!-- 1. Load libraries --> 
    <!-- IE required polyfills, in this exact order --> 
    <script src="js/angulardeps/2.0.0-beta.9/shims_for_IE.js"></script> 
    <script src="js/angulardeps/2.0.0-beta.9/es6-shim.min.js"></script> 
    <script src="js/angulardeps/2.0.0-beta.9/system-polyfills.js"></script> 
    <script src="js/angulardeps/2.0.0-beta.9/angular2-polyfills.js"></script> 
    <script src="js/angulardeps/2.0.0-beta.9/system.js"></script> 
    <script src="js/angulardeps/2.0.0-beta.9/Rx.js"></script> 
    <script src="js/angulardeps/2.0.0-beta.9/angular2.dev.js"></script> 
    <script src="js/angulardeps/2.0.0-beta.9/router.min.js"></script> 
    <script src="js/angulardeps/2.0.0-beta.9/http.min.js"></script> 
    <script src="assets/plugins/jQuery/jQuery-2.1.4.min.js" type="text/javascript"></script> 
    <script src="assets/js/bootstrap.min.js" type="text/javascript"></script> 

    <script type="text/javascript" src="cordova.js"></script> 
    <script type="text/javascript" src="js/index.js"></script> 
</body> 

這裏是發生了什麼。當我添加我得到錯誤的所有文件,如angular2,CSS等找不到。如果我刪除然後第一頁加載,當我嘗試瀏覽到路由這是我得到的錯誤...我無法映射到路由器的實際模板路徑。

enter image description here

以下是它是如何呈現的源。

enter image description here

更新3 錯誤我得到了父路由的孩子(嵌套的路線) enter image description here

+2

index.html中沒有。請注意路徑上的點。 – Abdulrahman

+0

@Abdulrahman - 太棒了...它的工作。現在我可以遍歷所有的父路線(第一級)。但對於路線的孩子(第二級),它給出了上述錯誤 - 更新3 – Gary

+0

你有多個在同一個模板中嗎?因爲你在一個模板中不能有多個 Abdulrahman

回答

1

我想你引用的功能onDeviceReady聲明之前。嘗試在添加事件偵聽器之前移動函數聲明。

function onDeviceReady() { 
    System.config({ 
     packages: {   
      app: { 
      format: 'register', 
      defaultExtension: 'js' 
      } 
     } 
     }); 
     System.import('app/boot').then(null, console.error.bind(console)); 
} 
document.addEventListener("deviceready", onDeviceReady, false); 
+0

不...還是一樣的。模擬器說連接到文件://..../index.html被重置,然後如果你手動打開應用程序,它停止在加載階段。 – Gary

+0

我需要更改平臺/瀏覽器或其他東西嗎?我在api文檔中讀到了這個,但沒有很好的文檔記錄。 – Gary

+1

@Gary Angular2仍然只有一個平臺,所以現在不需要改變任何東西。你可以發佈你的index.html嗎? – Abdulrahman

相關問題