У меня есть форма в моем индексе, который вводит имя. После представления имени с помощью ng-submit, я хочу скрыть форму, а затем показать другой div, который в настоящее время не скрыт ниже. Я попытался добавить кнопку в форму, чтобы установить ng-click и показать по щелчку, но не может заставить его работать (я вынул кнопку) и просто введите вход.
HTML
<form name="add-name" id="add-name" ng-submit="mainCtrl.addName()">
<input type="text" class="enter-name" placeholder="Enter your name here..." ng-model="mainCtrl.newName.name">
</form>
<!--- this part should be hidden, but should show when form is submitted --->
<div class="steptwo">
<h4 class="steptwo-text">{{ mainCtrl.newName.name }}</h4>
</div>
контроллер
app.controller('mainController', function($scope) {
this.newName = { name: '' };
this.names = this.names || [
{ name: ' ' },
];
this.addName = function() {
this.names.push({
name: this.newName.name
});
this.newName.name = null;
};
return this;
});
Любое объяснение или помощь будут очень признательны.
Вы можете использовать директиву ng-if
или ng-show/hide
для отображения и скрытия div в зависимости от выражения...
поэтому сначала добавьте эту директиву в часть html, которую вы хотите показать и скрыть, и дать им такое же выражение...
<form name="add-name" id="add-name" ng-submit="mainCtrl.addName()" ng-hide="mainCtrl.hideForm">
<input type="text" class="enter-name" placeholder="Enter your name here..." ng-model="mainCtrl.newName.name">
</form>
<!--- this part should be hidden, but should show when form is submitted --->
<div class="steptwo" ng-show="mainCtrl.hideForm">
<h4 class="steptwo-text">{{ mainCtrl.newName.name }}</h4>
</div>
то в вашем контроллере просто установите hideForm переменной true, поэтому форма будет скрыта, а второй шаг будет показан...
this.addName = function() {
this.names.push({
name: this.newName.name
});
this.newName.name = null;
// hide form
this.hideForm = true;
};
Вы можете использовать ng-if
или ng-show
или ng-hide
в тэге <form>
и управлять значением из контроллера.
HTML:
<form name="add-name" id="add-name" ng-submit="mainCtrl.addName()" ng-if="hide">
<input type="text" class="enter-name" placeholder="Enter your name here..." ng-model="mainCtrl.newName.name">
</form>
<!--- this part should be hidden, but should show when form is submitted --->
<div class="steptwo" ng-if="!hide">
<h4 class="steptwo-text">{{ mainCtrl.newName.name }}</h4>
</div>
контроллер:
app.controller('mainController', function($scope) {
$scope.hide = false;
this.newName = { name: '' };
this.names = this.names || [
{ name: ' ' },
];
this.addName = function() {
this.names.push({
name: this.newName.name
});
this.newName.name = null;
};
$scope.hide = true;
return this;
});
HTML файл:
<form name="add-name" id="add-name" ng-submit="mainCtrl.addName()" ng-hide="hide">
<input type="text" class="enter-name" placeholder="Enter your name here..." ng-model="mainCtrl.newName.name">
<input type="button" ng-click="{{hide=true}}">
</form>
<!--- this part should be hidden, but should show when form is submitted --->
<div class="steptwo" ng-show="hide">
<h4 class="steptwo-text">{{ mainCtrl.newName.name }}</h4>
</div>
Файл JavaScript:
app.controller('mainController', function($scope) {
$scope.hide = false;
this.newName = { name: '' };
this.names = this.names || [
{ name: ' ' },
];
this.addName = function() {
this.names.push({
name: this.newName.name
});
this.newName.name = null;
};
return this;
});