Измените директиву для просмотра выражения атрибута:
app.directive('inputType', function() {
return {
restrict: "A",
link: function(scope, elem, attrs) {
̶s̶c̶o̶p̶e̶:̶ ̶{̶
̶i̶n̶p̶u̶t̶T̶y̶p̶e̶:̶ ̶=̶
̶}̶,̶
link: function(scope, elem, attrs) {
̶v̶a̶r̶ ̶i̶n̶p̶u̶t̶T̶y̶p̶e̶ ̶=̶ ̶s̶c̶o̶p̶e̶.̶$̶e̶v̶a̶l̶(̶a̶t̶t̶r̶.̶i̶n̶p̶u̶t̶T̶y̶p̶e̶)̶;̶
scope.$watch(attrs.inputType, function(newValue) {
var inputType = newValue;
console.log("inputType", inputType);
elem.attr("type", inputType);
});
}
};
});
Затем директива будет обновляться при изменении значения выражения.
Примечание: При наличии наблюдатель оценивает атрибут напрямую, директива избегает использования изолированной области видимости для оценки атрибута.