2015-11-13 18 views
2

У меня есть поле ввода, привязанное к объекту модели, которое я не хочу связывать, пока пользователь не нажмет кнопку. Я прошел через ng-model-option и updateOn, но кажется, что они срабатывают только из-за коробки. События JS, такие как blur и focus.Угловое ngModelOptions - привязать значение к модели только при нажатии кнопки

<input ng-model="modelobject" ng-model-options="{updateOn: confirmButtonClick}"> 

<button id="confirmButton" role="confirm" ng-click="confirmButtonClick == true" class="confirm-btn">Confirm</button> 

Как я могу привязать значение к модели только по щелчку кнопки или пользовательской функции? Должен ли я написать специальную директиву?

ответ

4

Вы можете решить вашу проблему, обернув поля внутри формы, а затем обновите ng-model по адресу submit формы, например ng-model-options="{updateOn: 'submit'}".

HTML

<form name="myForm"> 
    <input ng-model="modelobject" ng-model-options="{updateOn: 'submit'}"> 
    <button id="confirmButton" role="confirm" class="confirm-btn"> 
    Confirm 
    </button> 
</form> 

Working Plunkr

+0

Не знаю, почему я не думал об этом! Спасибо, это прекрасно! – nikjohn