2016-03-15 28 views
7

我正在与我的项目建立一个简单的科尔多瓦应用程序。它有两层嵌套(主要路线) - >小孩路线 - >(另一条小孩路线)。 When trying to browse to the 2nd level (another child route)我收到一个错误,说Exception: Error during instantiation of t! Primary outlet already registered.一级工作正常。我没有在任何模板中使用过两次路由器插座。这个问题在浏览器和android的模拟中都是一样的。“异常:t!主插座实例化时出错已经注册。”在科尔多瓦angular2应用程序

附上下面的铬检查。

enter image description here

我的HTML文件

<html> 
<head> 
    <base href="./"> 
    <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> 

我的生成源结构: enter image description here

我的主要成分:

import {Component} from 'angular2/core'; 
import {ApproutesComponent} from '../app/approutes'; 
import {ROUTER_DIRECTIVES, ROUTER_PROVIDERS, RouteConfig} from 'angular2/router'; 

@RouteConfig([ 
    {path: '/d/...', component: ApproutesComponent, name: 'ApproutesCmp', useAsDefault:true} 
]) 
@Component({ 
    selector: 'main-app', 
    templateUrl: 'app/r/main/rmain.html', 
    directives:[ROUTER_DIRECTIVES] 
}) 
export class RroutesComponent { 
    constructor(){} 
} 
+0

我想你错过了最重要的部分...代码...它是否可以在使用科尔多瓦的plnkr中重现?我对此一无所知,但你的问题在于路由器。 –

+0

是的代码正确运行在服务器上。当我模仿或与科尔多瓦建立时,我得到的错误。它的路由器错误。 – Gary

+0

你能提供主应用程序组件代码吗? –

回答

6

我有同样的问题angular2 beta11,只是不 使用科尔多瓦。

根据文章here您应该使用router.js的非缩小版本。听起来很奇怪,但它对我很有用。

+0

确认的非缩小版本也适用于我。 – jasonslyvia

+0

此解决方案对我来说也适用 –

+0

此外,我还必须使用非缩小版本的Angular 2:'https://cdnjs.cloudflare.com/ajax/libs/angular.js/2.0.0-beta .14/angular2.js' – ComFreek

相关问题