Не следует ли работать с ng-bind для ввода?

Я был немного озадачен моим

<input ng-bind="x.a * x.b" tabindex="-1" readonly/>

выражение не работает. Я не могу использовать ng-model там (поскольку продукт не является L-значением), поэтому я слепо переключился на ng-bind. Я думаю, это не работает из-за смешной несогласованности HTML (используя value=xxx вместо размещения значения в тексте элемента). Поэтому я переключился на

<input value="{{x.a * x.b}}" tabindex="-1" readonly/>

который решил проблему, но не должен input ng-bind работать в любом случае? AFAIK jQuery val(). Я что-то делаю неправильно?

Боковые вопросы:

  • Неправильно ли использовать входные данные, которые всегда readonly?
  • Если да, то какой рекомендуемый способ? span или label или что?

Ответ 1

ngBind установите элемент текст:

element.text(value == undefined ? '' : value);   // from the source code of Angular

Таким образом, он не работает для установки значения ввода (и не должен).

Я считаю, что лучше использовать <span> вместо входов readonly.