2015-10-24 3 views
0

Как в угловом режиме, когда флажок снят, данные формы будут сброшены.AngularJS checkbox uncheck

 <div class="form-group"> 
       <input type="text" verify-store ng-model="user.merchant_store_name" class="form-control" name="merchant.store_name" placeholder="Store Name" ng-model-options="{ updateOn: 'blur' }" required> 
       <div ng-if="signupForm.$pending.usernameExists">verifying....</div> 
       <div ng-if="signupForm.$error.usernameExists[0].$viewValue"> 
       <label class="control-label" style="color:red">A store with that name already exists. Please select another name.</label> 
      </div> 

     <div class="form-group"> 
       <input type="text" class="form-control" ng-model="user.merchant_mobile_phone" placeholder="Phone" > 
     </div> 

      </div> 


<div class="checkbox clip-check check-primary"> 
    <input type="checkbox" id="agree" ng-model="signupForm.agree" value="agree" ng-required="!signupForm.agree"> 
    <label for="agree">I agree</label> 
</div> 

<div class="checkbox clip-check check-primary" ng-show="signupForm.agree"> 
     <input type="checkbox" id="merchant" ng-model="signupForm.merchant" value="merchant" > 
     <label for="merchant">Sign up as merchant</label> 
    </div> 

Есть ли способ, которым это можно сделать в шаблоне просмотра, а не передавать его контроллеру. Или я должен написать директиву для этого?

Спасибо!

+0

Проще всего просто сбросить модели. – dfsq

+0

@dfsq есть опция, в которой, если пользователь установил флажок, добавлен дополнительный 'div', и пользователь должен был заполнить информацию, снимите флажок, спрячет div, но не сбросит данные в пределах – d3bug3r

ответ

2

Вам не нужно писать одну строчку в вашем контроллере для достижения своей задачи с помощью следующих двух настроек DOM.

<input type="text" ng-model="myText"> 
<input type='checkbox' ng-model='chkMonitor' ng-click='!chkMonitor && (myText = "")' > 

Объяснение:

Ваши входы связаны с областью через области видимости переменных. Теперь вы поместите свой код в поле ng-click, чтобы выполнить код клиринга. Это нужно сделать, только если флажок снят. Таким образом, первый проверить это в логическом выражении перед выполнением вашего кода удаления:

ng-click='!chkMonitor && (myText = "")' 

myText = "" Ваш никогда не будет выполняться до тех пор, как chkMonitor ложно.

+0

. Почему форма все еще не очищается после проверки еще раз? 'ng-click = '! signupForm.merchant && (user.merchant_store_name =" ")'' – d3bug3r

+0

Вот скрипка, демонстрирующая этот код. http://jsfiddle.net/charlie2002/jj3h63cp/1/ –

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