【发布时间】:2015-08-05 04:54:57
【问题描述】:
我的 Angular 应用中有一个 kendo.data.Model,我正在将其转换为 Typescript。在我将模型定义添加到架构之前,数据源工作正常。
是否有另一种语法来使用 Typescript Kendo 定义具有 DataSource 的模型?
非 Typescript 版本运行良好。
var someModel = new kendo.data.Model({
id: "id",
fields: {
id: { type: "string" },
name: { type: "string", validation: { min: 1, required: true } },
isActive: { type: "boolean" }
}
});
var source = new kendo.data.DataSource({
transport: {
read: (options: any) => {
someService.getData(options.data).then(function (results) {
options.success(results.data);
});
}
},
schema: {
model: someModel
}});
编辑:问题是我错过了“kendo.data.Model.define({})”中的“定义”。但是在更改它时,问题转移了,现在我不能在其他代码中使用类型化模型:
class Foo {
someModelProp: kendo.data.Model;
constructor() {
this.someModelProp = kendo.data.Model.define({*see above code for fields*});
}
}
我在“this.someModelProp =”行上收到编译错误:
类型“typeof Model”不可分配给类型“Model”。 “typeof Model”类型中缺少属性“_defaultId”。
我可以将“someModelProp”更改为“any”,但随后我将不再使用类型化模型,这与 Typescript 的目的背道而驰。
【问题讨论】:
-
你能展示你的打字稿代码并描述什么不起作用吗?
-
上面的例子是Typescript。它看起来与普通 js 示例并没有什么不同,除了“read: (options: any) => {”,它在普通 js 中是“read: function (options) {”。我今天早上发现了这个问题,请参阅编辑。
标签: model kendo-ui typescript schema datasource