Это решение:
app.component('myComponent', {
templateUrl: 'tmpl.html',
bindings: {
str: '@'
},
controller: function ($element) {
var ctrl = this;
ctrl.$postLink = function () {
$element.find('input').attr('multiple', 'multiple');
}
}
}
Хитрость была в том, чтобы связать вещи. Код из вопроса не работает, потому что input
еще не существует в DOM в то время, когда срабатывает ловушка $postLink
. Итак, нам нужно внедрить сервис $element
в контроллер и использовать его для манипулирования DOM.