2016-11-11 2 views
0

У меня есть форма с полем ввода и флажок и две кнопки, кнопки для добавления и удаления. Но я хочу удалить кнопку добавления и хочу показать следующее поле, просто проверив флажок. Как я могу это сделать?Поле динамической формы в angularjs

angular.module('ionicApp',['ionic']) 
 
.controller('myctrl',function($scope){ 
 
    $scope.data ={ 
 
     names:[{ name:""}] 
 
    }; 
 
    
 
    $scope.addRow = function(index){ 
 
    var name = {name:""}; 
 
     if($scope.data.names.length <= index+1 && $scope.data.names.length<10){ 
 
      $scope.data.names.splice(index+1,0,name); 
 
     } 
 
    }; 
 
    
 
    $scope.deleteRow = function($event,index){ 
 
    if($event.which == 1) 
 
     $scope.data.names.splice(index,1); 
 
    } 
 
})
.button-dark{ 
 
    margin-top:10px; 
 
} 
 
.button-delete{ 
 
    display: inline-block; 
 
    float: right; 
 
    position: relative; 
 
    width: 24px; 
 
    height: 33px; 
 
    top: -36px; 
 
    right: 5px; 
 
    color: #fff; 
 
    background: red; 
 
    border: 0; 
 
}
<html ng-app="ionicApp"> 
 

 
<head> 
 
    <meta charset="utf-8"> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> 
 
    <title>Multiple input</title> 
 

 
    <link href="//code.ionicframework.com/nightly/css/ionic.css" rel="stylesheet"> 
 
    <script src="//code.ionicframework.com/nightly/js/ionic.bundle.js"></script> 
 

 
</head> 
 

 
<body ng-controller="myctrl"> 
 

 
    <ion-header-bar class="bar-positive"> 
 
    <h1 class="title">Ionic app</h1> 
 
    </ion-header-bar> 
 
    <ion-content> 
 
    <form id="valueForm" ng-submit="saveValues(values)"> 
 
     <div ng-repeat="name in data.names track by $index"> 
 
\t \t \t <label class="item item-input" style="width: 92%"> 
 
\t \t \t <input type="text" placeholder="Answer" ng-model="data.names[$index].name"> 
 
\t \t \t <ion-checkbox ng-model="success.first" ng-disabled="!data.names[$index].name" style="border: none;padding-left: 30px;" class="checkbox-royal"></ion-checkbox> 
 
\t \t \t </label> 
 
\t \t \t <button type="button" class=" button-delete" ng-click="deleteRow($event,$index)" ng-disabled="$index == 0"><i class="ion-ios-minus-empty"></i></button> 
 
\t \t \t <input type="button" ng-click="addRow($index)" value="Add" ng-show="$last"> 
 
\t \t \t 
 
\t \t \t </div> \t 
 
\t \t </div> 
 

 

 
     
 

 
     <button type="submit" class="button button-dark button-shadow pull-right" style="">Submit</button> 
 
     </div> 
 
    </form> 
 

 
    </ion-content> 
 

 
</body> 
 

 
</html>

+0

вы можете использовать 'нг-hide' , на кнопке с использованием 'model'' check-bo x'. '' – Sravan

+0

Я не хочу использовать кнопку, чтобы добавить новое поле @Sravan –

ответ

1

Снимите Добавить Button и добавить ng-click="addRow($index)" к CheckBox .. проверьте ниже рабочего фрагмента кода

angular.module('ionicApp',['ionic']) 
 
.controller('myctrl',function($scope){ 
 
    $scope.data ={ 
 
     names:[{ name:""}] 
 
    }; 
 
    
 
    $scope.addRow = function(index){ 
 
    var name = {name:""}; 
 
     if($scope.data.names.length <= index+1 && $scope.data.names.length<10){ 
 
      $scope.data.names.splice(index+1,0,name); 
 
     } 
 
    }; 
 
    
 
    $scope.deleteRow = function($event,index){ 
 
    if($event.which == 1) 
 
     $scope.data.names.splice(index,1); 
 
    } 
 
})
.button-dark{ 
 
    margin-top:10px; 
 
} 
 
.button-delete{ 
 
    display: inline-block; 
 
    float: right; 
 
    position: relative; 
 
    width: 24px; 
 
    height: 33px; 
 
    top: -36px; 
 
    right: 5px; 
 
    color: #fff; 
 
    background: red; 
 
    border: 0; 
 
}
<html ng-app="ionicApp"> 
 

 
<head> 
 
    <meta charset="utf-8"> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> 
 
    <title>Multiple input</title> 
 

 
    <link href="//code.ionicframework.com/nightly/css/ionic.css" rel="stylesheet"> 
 
    <script src="//code.ionicframework.com/nightly/js/ionic.bundle.js"></script> 
 

 
</head> 
 

 
<body ng-controller="myctrl"> 
 

 
    <ion-header-bar class="bar-positive"> 
 
    <h1 class="title">Ionic app</h1> 
 
    </ion-header-bar> 
 
    <ion-content> 
 
    <form id="valueForm" ng-submit="saveValues(values)"> 
 
     <div ng-repeat="name in data.names track by $index"> 
 
\t \t \t <label class="item item-input" style="width: 92%"> 
 
\t \t \t <input type="text" placeholder="Answer" ng-model="data.names[$index].name"> 
 
\t \t \t <ion-checkbox ng-model="success.first" ng-disabled="!data.names[$index].name" style="border: none;padding-left: 30px;" class="checkbox-royal" ng-click="addRow($index)"></ion-checkbox> 
 
\t \t \t </label> 
 
\t \t \t <button type="button" class=" button-delete" ng-click="deleteRow($event,$index)" ng-disabled="$index == 0"><i class="ion-ios-minus-empty"></i></button> 
 
\t \t \t 
 
\t \t \t </div> \t 
 
\t \t </div> 
 

 

 
     
 

 
     <button type="submit" class="button button-dark button-shadow pull-right" style="">Submit</button> 
 
     </div> 
 
    </form> 
 

 
    </ion-content> 
 

 
</body> 
 

 
</html>

+0

проверить флажок не поддерживается? , Основная проблема, с которой я столкнулся, заключается в том, что я уже использовал то же самое решение, что и здесь, но я хочу, чтобы флажок был установлен. –

+0

Добавлен код check now checkbox wont remove ..., там вы можете добавить любое фоновое изображение для отмеченного флажка ... поиграть с css для ярлыка, вы получите этот результат ... дайте мне знать – cna327

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