Я создаю административный компонент, который строит небольшую форму для редактирования свойств данной модели. Ключ к тому, что он независим от модели, и я почти там (я думаю), но я продолжаю работать, чтобы привязка работала правильно.Связанная итерация через свойства модели
Вот установка ... шаблон action.hbs
делает ссылку на мой компонент и переходит в modelMeta
собственности (подробнее об этом в сек):
{{model-admin-form
model=content
meta=modelMeta
}}
В контроллере (ActionController
) Я определяю modelMeta
собственность как:
modelMeta: function() {
var vals = [];
var attributeMap = this.get('content.constructor.attributes');
var self = this;
attributeMap.forEach(function(name, value) {
item = Ember.Object.create({
name: value.name,
type: value.type,
value: self.get('content.' + name)
});
vals.push(item);
});
return vals;
}.property('content'),
Это дает мне массив всех свойств в модели и для каждого это дает мне «имя», «тип» и «значение». Это отлично работает, за исключением того, что «значение» не привязано к модели. Хорошо, не проблема, я просто изменим строку назначения на:
valueBinding: self.get('content.' + name);
Nope. Это не работает. Черт. Почему нет? Ну используя Ember инспектор, я могу видеть, что valueBinding
настроен, но это _from
свойство кажется слегка подвыпивший:
Я бы ожидал, что это указывает на что-то вроде «controllers.actions.content ...» или что-то на этот счет. Вместо этого значение «Alt Gained» является фактическим строковым значением свойства, но не ссылкой привязки.
Может ли кто-нибудь мне помочь?
= - = - = - = - = - = - = - ОБНОВЛЕНИЕ = - = - = - = - = - = - = -
Я обновил пример немного, чтобы сделать более ясным и добавьте немного контекста. Конечной целью этого упражнения является предоставление вычисленного свойства modelMeta
, которое представляет собой массив, в котором каждый элемент массива представляет метаинформацию для свойства в модели. Метаинформацию захвачена является:
- имя: имя свойства
- типа: тип переменного (например, строка, числа и т.д.)
- значение/valueBinding: связанная ссылка на именованном свойство по образцовой записи
Первые две части - торт. Последний - сложная часть. Получение несвязанного значения тривиально, но привязка к нему кажется сложной.
Awesome. Работал как шарм. Спасибо Джо. – ken