2010-06-22 3 views
0

Я столкнулся с проблемами при установке значений модели, содержащих числовые свойства. Вот пример:Проблема с методом model.set()

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

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

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

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

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

+0

Извините за глупый вопрос. Я не очень внимательно изучал API. По определению мы можем установить только объект Map not json – WSK

ответ

1

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

С уважением,
Martin
КПП. его всегда qx, а не rx. :)

Смежные вопросы