Проблема с методом model.set () - PullRequest
0 голосов
/ 22 июня 2010

У меня проблемы с настройкой значений модели, содержащих числовые свойства. Вот пример:

Этот код не работает:

var modelSkeleton = {id: null, name: null};
var model = rx.data.marshal.Json.createModel(modelSkeleton);
var x = {id:22,name:"New name"};
model.set(x);

Однако, если я помещаю кавычки в значение id, это работает:

var modelSkeleton = {id: null, name: null};
var model = rx.data.marshal.Json.createModel(modelSkeleton);
var y = {id:"22",name:"New name"}
model.set(y);

Я делаю какую-то ошибку или это ошибка? Любое быстрое решение?

1 Ответ

1 голос
/ 23 июня 2010

Я думаю, что в концепциях привязки данных qooxdoo чего-то не хватает.Для этого вам нужно знать, что делает ваша вторая строка в вашем коде.Это приносит вам немного магии, которая создает класс qooxdoo на основе вашего объекта JavaScript и создает экземпляр объекта, который возвращается.Все свойства, прикрепленные к вашему нативному объекту JavaScript, будут доступны в виде свойств qooxdoo, к которым нужно обращаться с помощью часто используемых getter и setter.Метод set, который вы используете, является просто ярлыком, который анализирует данный объект и устанавливает каждое содержащееся свойство.Так что обычно это должно работать, но важно знать, что вы делаете здесь, потому что существуют ограничения, когда у вас есть более сложные объекты, такие как массивы, этот способ не работает.

С уважением,
Мартин
Кстати,его всегда QX, а не RX.:)

...