2016-04-30 9 views
1

があるにもかかわらず、モデルフォルダに見つからない404私は、次のアプリの構造を持って行き方:AngularJS2:ファイルが

Project Structure

を私は「Create.cshtml」などの各ページがする

自分のアプリケーションをしたいです

ブートストラップ(スクリプト/アプリ/プロジェクト/作成/ app.projects.create-boot.ts) と 負荷アプリケーション(/app.projects.create.ts)。

私のすべてのモデルを保持し、共有されるmodelsフォルダもあります。

serviceline.js(スクリプト/モデル/ serviceline.ts

app.projects.create-boot.ts:

/// <reference path="../../../../node_modules/angular2/typings/browser.d.ts" /> 
import {bootstrap} from 'angular2/platform/browser' 
import {AppProjectsCreateComponent} from './app.projects.create' 
import {ServiceLine} from '../../../models/serviceline'; 
bootstrap(AppProjectsCreateComponent, [ServiceLine]); 

app.projects.create.ts:

import {Component} from 'angular2/core'; 
import {ServiceLine} from '../../../models/serviceline'; 

@Component({ 
    selector: 'project-create', 
    templateUrl: '../../appScripts/app/projects/create/app.projects.create.html' 
}) 
export class AppProjectsCreateComponent { 
    name = "max"; 
    serviceLines: ServiceLine[]; 
    constructor() { 
     //this.serviceLines = [ new ServiceLine(1, "Name Test") ]; 
    } 
} 

serviceLine.ts

export class ServiceLine { 
    ServiceLineId: number; 
    Name: string 

    constructor(serviceLineId: number, name: string) { 
     this.ServiceLineId = serviceLineId; 
     this.Name = name; 
    } 
} 

Create.cshtml:

@* 
    For more information on enabling MVC for empty projects, visit http://go.microsoft.com/fwlink/?LinkID=397860 
*@ 
@section head{ 
    <script src="~/lib/es6-shim.min.js"></script> 
    <script src="~/lib/system-polyfills.js"></script> 
    <script src="~/lib/shims_for_IE.js"></script> 
    <script src="~/lib/angular2-polyfills.js"></script> 
    <script src="~/lib/system.js"></script> 
    <script src="~/lib/rx.js"></script> 
    <script src="~/lib/angular2.dev.js"></script> 
    <!-- 2. Configure SystemJS -->  
} 

@{ 
    <script> 
     System.config({ 
      map: { 
       appScripts: '../appScripts/app/projects/create' 
      }, 
      packages: { 
       appScripts: { 
        defaultExtension: 'js' 
       } 
      } 
     }); 

     System.import('appScripts/app.projects.create-boot') 
       .then(null, console.error.bind(console)); 
    </script> 
} 
<br /> 
<project-create></project-create> 

私はapp.projects.create.tsファイルにサービスライン[]を追加するまで、すべてが検索をロードしました。ここで

は誤りです: Error

私は何をしないのですか? AngularがserviceLine.jsを見つけることができないのはなぜですか?

編集:地図のフィールドを変更します。

答えて

0

マップブロックのため、サービスファイルがSystemJS構成でターゲティングされていないという問題があります。

したがって、SystemJSはJS拡張を追加しません。私はマップブロックを削除します:

<script> 
     System.config({ 
      /* map: { 
       appScripts: '../appScripts/app/projects/create' 
      }, */ 
      packages: { 
       appScripts: { 
        defaultExtension: 'js' 
       } 
      } 
     }); 

     System.import('appScripts/app/projects/create/app.projects.create-boot') 
       .then(null, console.error.bind(console)); 
    </script> 

それに応じてインポートのパスを更新します。

この構成では、「モデル」はトークンを考慮に入れます。あなたの設定は、あなたの "モデル"フォルダが "作成"の下にあった場合にのみ機能します。

+0

これを試しましたが、今はboot.jsファイルについて不平を言っています。 angular2-polyfills.js:127 GET http:// localhost:51932/Projects/appScripts/app/projects/create/app.projects.create-boot.js 404(見つかりません) – jmogera

+0

「システム」で指定したパスです.import "は正しいですか?私はちょうど私の答えでこのレベルでタイプミスがあったことを見て...今何がエラーですか? –

+0

私はあなたの提案と共に地図を実際に変更しようとしました。ただし、これを取得する:エラー: 'ServiceLine'(?、?)のすべてのパラメータを解決できません。すべてのパラメータがInjectで装飾されているか、有効なタイプの注釈を持っていて、 'ServiceLine'がInjectableで装飾されていることを確認してください。 – jmogera