MooTools Classes и Knockout.js

Опитвах се да запазя кода си малко по-чист, като използвах OOP моделите, които MooTools предоставя в комбинация с Knockout.js

Изглежда не мога да го накарам да работи, тъй като Knockout връща някаква функция (функцията на свойствата, а?), когато данните обвързват стойностите. Ако обаче стойностите се извличат с javascript, той работи както е изразено. Направих бърз jsFiddle, за да можете да го тествате:

http://jsfiddle.net/tixz/JK2jt/

Благодаря предварително!


person Tixz    schedule 29.12.2011    source източник


Отговори (1)


Във вашата текуща структура наблюдаемите се създават върху прототипа на вашия клас. Knockout не възнамерява те да бъдат в прототипа (те не могат да бъдат споделяни, тъй като запазват частно състояние) и вътрешна функция ko.isObservable се проваля поради това. Това води до това, че кодът за разопаковане в KO не осъзнава, че трябва да извлече основната стойност за вашите наблюдаеми.

Ще трябва да го напишете така:

var ViewModel = new Class({
    initialize: function(secondVal){
        this.someProp = ko.observable('Here is my value');
        this.anotherProp = ko.observable(secondVal);
    }
});

http://jsfiddle.net/rniemeyer/JK2jt/9/

person RP Niemeyer    schedule 30.12.2011
comment
Да, за съжаление не можете да използвате ko.observable в дефиницията на вашия клас ... тези свойства трябва да се инициализират уникално за всеки екземпляр. - person Scott Rippey; 02.05.2013