Dziamid
Dziamid

Reputation: 11581

Breezejs EntityType.createEntity is not wrapping properties with observables

breeze is supposed to wrap properties with observable and observableArrays by default, right? Why is it not doing it in this case?

var apiService = new breeze.DataService({
    serviceName: 'api',
    hasServerMetadata: false
});

var store = new breeze.MetadataStore({
    namingConvention: breeze.NamingConvention.camelCase
});

var movieType = new breeze.EntityType({
    shortName: 'Movie',
    dataProperties: [
        new breeze.DataProperty({
            name: "id",
            dataType: breeze.DataType.ID,
            isNullable: false,
            isPartOfKey: true
        }),
        new breeze.DataProperty({
            name: "title",
            dataType: breeze.DataType.String,
            isNullable: false
        })
    ]
});

store.addEntityType(movieType);

function Movie() {
    var self = this;

    self.isBeingEdited = false;
}

store.registerEntityTypeCtor('Movie', Movie);

var manager = new breeze.EntityManager({
    dataService: apiService,
    metadataStore: store
});

var favoriteMovie = movieType.createEntity({
    id: 123,
    title: "5th Element",
    stars: ['Bruce Willis', 'Milla Yovovich']
});

manager.addEntity(favoriteMovie);

alert(favoriteMovie.title()); //errors favoriteMovie.title is not a function

Upvotes: 0

Views: 79

Answers (1)

Dziamid
Dziamid

Reputation: 11581

The above code is fine. The problem was that I included breeze.js before knockout.js The order of inclusion is important.

Upvotes: 2

Related Questions