0

Сейчас у меня есть поле ввода:изменение номера вводится пользовательского ввода не работает

<input type="number" ng-model="distance"></input> 

В JS Поручаю расстояние до значения:

$scope.distance = 0; 

Я хочу это значение изменить когда пользователь вводит значение и нажимает кнопку. Я имею установку кнопки с моим контроллером ... Но каждый раз, когда кнопка нажата, она отображает значение как 0.

Функция при нажатии кнопки:

//convert button function for when button is clicked 
$scope.convert = function(myUnit, myUnit2, distance){ 
    alert(distance); 
} 

Кнопка:

<button class="button button-block button-balanced" ng-click="convert(myUnit.thisunit, myUnit2.thisunit2, {{distance}})"> 
    Convert 
</button> 
+0

добавлена ​​функция и кнопка –

+0

Используйте 'convert (myUnit.thisunit, myUnit2.thisunit2, distance)'. Вы уже находитесь в выражении AngularJS, не нужно добавлять фигурные скобки '{{...}}'. – Blackhole

ответ

1

Измените ng-click на это ng-click="convert(myUnit.thisunit, myUnit2.thisunit2, distance)", потому что вы использовали {{distance}} интерполяция директива внутри ng-click директивы, которая никогда не пройдет расстояние значения

HTML

<button class="button button-block button-balanced" ng-click="convert(myUnit.thisunit, myUnit2.thisunit2, distance)"> 
    Convert 
</button> 

Надеется, что это может помочь вам, спасибо.

0

В зависимости от структуры вашего HTML (если у вас есть ngIf выше вашего <input>) расстояние модель не может быть просачиваться в ваш контроллер.

Вы должны, вероятно, гнездится его безопасности, например, так:

$scope.formData = {distance: 0}; 

И потом:

<input type="number" ng-model="formData.distance"></input> 

Кроме того, ваш клик-обработчик должен просто прочитать от значения $scope, а также:

$scope.clickHandler = function() { 
    alert(formData.distance); 
} 
Смежные вопросы