AngularJS2:在模型文件夹中找不到404,即使文件存在

时间:2016-04-30 05:32:52

标签: asp.net-mvc-5 angular

我有以下app结构:

Project Structure

我希望我的应用程序每个页面都像“Create.cshtml”

自举(的脚本/应用/项目/创建/ app.projects.create-boot.ts ) 和 加载应用程序( /app.projects.create.ts )。

我还有一个模型文件夹,可以存放我的所有模型并将被共享。

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文件中添加ServiceLine []之前,所有内容都在加载查找。

这是错误: Error

我错过了什么?为什么Angular不能找到serviceLine.js。

编辑:更改地图字段。

<script>
        System.config({
            map: {
                appScripts: '../appScripts' //Change Here
            },
            packages: {
                appScripts: {
                    defaultExtension: 'js'
                }
            }
        });

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

1 个答案:

答案 0 :(得分: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>

并相应地更新导入中的路径。

使用此配置&#34;模型&#34;将是令牌考虑在内。您的配置仅适用于您的&#34;型号&#34;文件夹位于&#34;创建&#34;之一。