/ / Modelové dedičstvo definované požiadavkami - knockout.js, requjs

Dedičnosť modelu definovaná požiadavkami - knockout.js, vyžadujú

Mám aplikáciu Wep, ktorá používa oba knockout.js a required.js. Povedzme, že mám model "Používateľ" a model "Zákazník" Chcem, aby model Zákazníka zdedil od používateľa, takže teraz mám nasledujúci kód:

User.js

define(["knockout"], function(ko){

return function User(){

var self = this;
self.id = ko.observable();
self.firstname = ko.observable();
self.name = ko.observable();
};
});

Customer.js

define(["knockout", "model/user"], function(ko, User){

return function Customer(){

var self = this;
self.address = ko.observable();
};
Customer.prototype = new User();
});

Keď vytvorím zákazníka s nasledujúcim kódom:

var c = new Customer();
c.id(1);
c.firstname("John");
c.name("Doe");
c.address("Unknown");

Potom sa na konzole Chrome zobrazí táto chyba:

Uncaught TypeError: Object #<Customer> has no method "id"

Keď nastavím iba vlastnosť adresy, nevidím túto chybu, takže predpokladám, že niečo nie je v poriadku s dedičstvom. Akákoľvek pomoc je veľmi vítaná.

odpovede:

1 pre odpoveď č. 1

Nasledujúci riadok sa nikdy nevykoná, pretože používate návrat pred:

Customer.prototype = new User();

aktualizovať customer.js do tohto:

define(["knockout", "model/user"], function(ko, User){

function Customer (){

var self = this;
self.address = ko.observable();
};
Customer.prototype = new User();
return Customer;
});