2013-02-28 4 views
1

Я пытаюсь найти способ обновить один атрибут модели, не загрязняя ее. Точно так же, как Store.load, но с одним атрибутом.Принудительно загружать один атрибут с данными ember

Вариант использования - это то, что я хочу загрузить изображение аватара (что не может быть сделано с помощью семантики текущего адаптера AFAIK). Я делаю это против конкретной конечной точки API, и впоследствии я хочу обновить пользователя с результирующим URL-адресом (так что все его аватары появятся).

Я нахожусь в контексте профиля, поэтому, если я просто загружаю весь пользователь, я теряю все изменения формы (потому что значения становятся выше).

Есть ли способ сделать это? Благодаря!

ответ

0

Я могу думать о двух путях, но я их не пробовал. (Они оба являются обходными способами)

Вы можете установить свойство пользователя, которое не является DS.attr. Если это нормальное свойство, оно не должно загрязнять запись.

Если url является атрибутом базы данных, то создайте вычисленное свойство, которое прослушивает URL-адрес и использует его в ваших шаблонах.

App.User = Em.extend({ 
    url: DS.attr('string'), 
    URL: function() { 
    return this.get('url'); 
    }.property('url') 
}); 

А потом user.set('URL', imageUrl)

Другой способ может быть переход на запись в clean состоянии.

user.get('stateManager').send('becameClean');

Второй метод является некрасиво обходным хотя.

+0

Эти два подхода выглядят очень хорошо. Я попытался с первым, но мне действительно не очень удобно иметь два метода, чтобы сделать то же самое (и с немного другими именами). Я собираюсь отметить его как действительный, так как я не думаю, что есть много других вариантов. Благодаря! – josepjaume

1

Вы можете моделировать «Аватар» отдельно, как модель сама по себе, а не как атрибут. Затем эту модель можно обновить через магазин, не беспокоясь о конфликтующих изменениях с остальной моделью пользователя.

+0

Спасибо! Я вроде как делаю, но тогда у него должен быть удостоверение личности, верно? Я всегда мог использовать идентификатор своего родителя, но не идеален. – josepjaume

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