angular 2命名空间模型

时间:2016-10-23 10:02:26

标签: angular typescript

如何在角度2中使用模型类?

这是一个例子

模型

namespace model.car {
    export class CoolCar {
        Id: string;
        Name: string;

        constructor(){
        }
    }

    export class NiceCar {
        Id: string;
        Name: string;

        constructor(){
        }
    }
}

namespace model.bike {
    export class AwesomeBike {
        Id: string;
        Name: string;

        constructor(){
        }
    }
}

我想在我的课程中使用它们,比如

var car=new model.car.CoolCar();

但是当我在浏览器中运行时出现错误

"ReferenceError: 'model' is undefined"

我尝试导入类似

的模型类
import {CoolCar} from '../model/car/CoolCar'

但是我在VS2015中遇到错误:

File "c:/...../model/car/CoolCar.ts is" no module

有人可以帮助我吗?

托拜厄斯

2 个答案:

答案 0 :(得分:3)

如果要公开名称空间,则需要使用关键字// MyModels.ts export namespace car { export class NiceCar { Id: string; constructor(public name: string) {} } } export namespace bike { export class AwesomeBike { Id: string; constructor(public name: string) { } } } 。例如:

// main.ts
import * as model from './MyModels';

let car = new model.car.NiceCar('my nice car');
let bike = new model.bike.AwesomeBike('my awesome bike');

console.log(car);
console.log(bike);

然后将这些命名空间用于:

model

注意我在MyModels.ts命名空间下导入这些类,这些类仅在导入时指定,而不是在$ node main.js NiceCar { name: 'my nice car' } AwesomeBike { name: 'my awesome bike' } 中指定。

这个编译成JS并运行时会打印到控制台:

$.post( 
    "YourController/YourMethod", 
    { symp },
    function( response ) {
        //proccess the response here
    }
); 

请注意,通常不鼓励在TypeScript中使用名称空间。见{{3}}

答案 1 :(得分:-1)

我认为这会对你有帮助。

<强> cars.ts

import * as car from "./cars";
let c = new cars.Cars.CoolCar();

coolcar.ts

$('.selectpicker').on('show.bs.select', function () {
$('.selectpicker').find('[value=0]').remove();
$('.selectpicker').selectpicker('refresh');
});

<select class="price selectpicker form-control" id="price" name="price" title="Please choose price.." />
<option value="0"></option>
<option value="10">$10</option>
<option value="20">$20</option>
</select>

<select class="multiply selectpicker form-control" id="multiply" name="multiply" title="Please choose multiplier.." />
<option value="0"></option>
<option value="1">1</option>
<option value="2">2</option>
</select>

show.bs.select