我正在使用AngularJS消息构建一个简单的表单。 基本上我想要发生的是:
第一点工作正常,但我无法弄清楚第二部分,之后我根本无法隐藏错误信息。我确定我错过了一些简单的事情,但其他相关问题并没有太多帮助。
有什么想法吗?
<form name="orderForm"
ng-submit="orderForm.$valid && placeOrder()" novalidate>
<input type="text"
ng-model="orderParams.delivery_address.full_name"
name="fullName" required />
<p ng-message="orderForm.fullName.$error"
ng-if="orderForm.fullName.$invalid && orderForm.$submitted">
This field is required</p>
<input type="submit" value="Submit" />
</form>
答案 0 :(得分:2)
对我来说,问题是通过向我的模块依赖项添加ngMessgaes
来解决的。
我安装之前已经安装了bower,但是忘了将它添加到模块依赖项中。由于某种原因,它没有造成任何错误它只能阻止我的错误消息隐藏。
答案 1 :(得分:0)
你需要做三件事: 1.在控制器中添加一个布尔变量,如:“showMessageBox”,设置为true。 2.当您提交时,将“showMessageBox”设置为false。 3.在你的消息框中放置ng-show指令并将其绑定到“showMessageBox”变量
答案 2 :(得分:0)
我其实只是想出来了。我使用的是Angular 1.4.2,看起来Angular Messages现在是核心构建的一部分,我之前没有注意到它(我只是忘记注入角度模块) ,删除了angular-messages.js文件(这可能导致冲突),上面的代码工作正常。
任何人都知道为什么code.angularjs.org上仍然可以使用单独的模块? - $scope.novoCampo = function (index) {
var deferred = $q.defer();
contatosAPI.getDados().then(function (response) {
var campos = [];
var listaContatos = response.data._embedded.contatos;
for (var i = 0; i < listaContatos.length; i++) {
var dados = listaContatos[i].dados;
for (var j = 0; j < dados.length; j++) {
var nomeCampo = dados[j].campo;
if (campos.indexOf <= -1) {
campos.push(nomeCampo);
}
}
}
deferred.resolve(campos);
}).catch(function (error) {
alert("Erro ao obter os campos!");
console.log(error + "\t" + JSON.stringify(error));
deferred.reject(status);
});
deferred.promise.then(function (listaCampos) {
//Here in my console.log is empty
console.log("lista " + '\t' + JSON.stringify(listaCampos) + '\t' + listaCampos[0]);
var modalInstance = $modal.open({
animation: $scope.animationsEnabled,
templateUrl: 'novoCampo.html',
controller: 'novoCampoController',
size: '',
resolve: {
index: function () {
return index
}
}
});
modalInstance.result.then(function (result) {
try {
$scope.contatos[result.index].dados.push({
campo: result.nomeCampo,
valor: ""
});
} catch (error) {
alert("Erro ao inserir novo campo!");
}
}, function () {
$log.info('Modal dismissed at: ' + new Date());
});
}, function (reject) {
alert("erro" + reject);
});
};