1

Я пытаюсь вычислить 2 значения, введенные пользователем, и установить этот результат в качестве модели ng для другого значения. Однако я не могу заставить этот код работать.Можете ли вы ng-инициализировать значение ng-модели на основе других значений в области?

<input type="number" ng-model="a"> 
<input type="number" ng-model="b"> 
<input type="number" ng-init="c = a * b" ng-model="c"> 

Я также попытался использовать parseFloat:

//in controller 
$scope.parseFloat = parseFloat(); 

<input type="number" ng-init="c = (parseFloat(a) * parseFloat(b))" ng-model="c"> 

я могу получить результат, я хочу в качестве метки {{a * b | number:2 | currency}}, но не как нг-модели. Есть идеи?

+0

Возможный дубликат http://stackoverflow.com/questions/30579223/ng-init-not-working-when-the-ng- options-list-is-changed # answer-30579456 – PSL

+0

ng-init можно использовать только с директивой ng-repeat. вы должны использовать c как ng-модель и обновить значение на событии on-change – fantarama

+0

@fantarama, чтобы быть точным, ng-init _can_ использоваться в любом месте, но соответствующее использование предназначено для псевдонимов специальных свойств ng-repeat. – PSL

ответ

0

ng-init вызывается только один раз, когда узел инициализирован. Вы можете попробовать использовать ng-change на два входа, чтобы установить значение с

<input type="number" ng-model="a" ng-change='c=a*b'> 
<input type="number" ng-model="b" ng-change='c=a*b'> 
+0

Это имело бы смысл для меня, но все еще не работает. Я на самом деле получаю ошибку NAN, хотя у меня есть type = "number". Есть идеи по этому поводу? – JoshPMP

Смежные вопросы