3

我以前使用过 Backbone Relational,但没有使用 Typescript,而且我在入门时遇到了麻烦:

/// <reference path="../Typings/backbone.d.ts"/>
/// <reference path="../Typings/backbone.relational.d.ts"/>

module Application.Models {
    export class Entity extends Backbone.RelationalModel {
        constructor(options?) {
            super(options);
        }
    }
}


var e = new Models.Entity()

这会引发错误:

Uncaught TypeError: Object function Entity() {
                    _super.call(this);
        } has no method 'initializeModelHierarchy'

更新:

我在 Backbone Relational 文档中发现了这一点,它说 setup() 在使用 CoffeeScript 语法时不会被自动调用。这可能与我的打字稿问题有关吗?如果是这样,您认为我可以在我的打字稿中的哪个位置调用设置?

http://backbonerelational.org/#RelationalModel-setup

4

1 回答 1

1

根据 Backbone 文档设置实体的正确方法是:

declare module Backbone{
    export class RelationalModel{
        constructor(options?:any);
        static setup():any;
    }   
}

class MyModel extends Backbone.RelationalModel {
    constructor(options?) {
        super(options);
    }
}

MyModel.setup();

var x = new MyModel();

TypeScript PlaygroundJsFiddle

基于文档:http ://backbonerelational.org/#RelationalModel-setup

于 2013-06-29T13:16:27.240 回答