如何在角度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
有人可以帮助我吗?
托拜厄斯
答案 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>