доступ к динамическим входным значениям в ember #каждый блок в ember

У меня проблемы с доступом к входным значениям в моем компоненте. Я пытаюсь динамически создавать привязки значений в своих шаблонах и получать доступ к файлу conponent.js, используя this.controller.get("pst"+id), однако результат недооценен. Использование Эмбер 2.2

{{#each post in |pst idx|}}
    {{input value=(concat 'pst' idx)}}
{{/each}}

person goofiw    schedule 05.04.2016    source источник
comment
Эмбер версия? Попробуйте {{#each post as |pst idx|}}   -  person acid_srvnn    schedule 05.04.2016
comment
похоже, это проблема с созданием переменной, к которой привязано значение. Вспомогательная функция concat создает строку, но когда я пытаюсь использовать this.get.controller(..) для динамически созданной строки, она не возвращает значение поля ввода (и возвращает значение undefined)   -  person goofiw    schedule 05.04.2016
comment
Я считаю, что вам нужен помощник get, возможно, в сочетании с concat: (get this (concat "pst" idx)).   -  person locks    schedule 06.04.2016
comment
Я пробовал это без кубиков. Я также пробовал только это.get('idx'+i);   -  person goofiw    schedule 06.04.2016


Ответы (2)


Что ж, работает как положено, но зачем вам сделай это?

Пожалуйста, объясните, что вы хотите заархивировать, и тогда мы сможем помочь лучше.

И чтобы было ясно, значение, сгенерированное помощником get, неизменяемо.

Почему бы не сделать что-то вроде {{input value=pst}}? Если это не вариант, возможно, вам следует создать свой массив в JS и использовать его в руле!

person Lux    schedule 06.04.2016

Определите вычисляемое свойство, которое обертывает вашу переменную post в файле component.js. Переберите эту оболочку. Я думаю, что это мощный способ создания динамических значений.

Ваш шаблон:

{{#each postWrappers as postWrapper}}
    {{input value=postWrapper.value}}
{{/each}}

Ваш компонент .js:

postWrappers : Ember.computed('post', function() { 
   //your concat code
});
person ykaragol    schedule 07.04.2016