我有这个HTML:
<form ng-controller="controlFormulario as formCtrl">
<div style="width:50%; margin-left: 160px; margin-top: 2%">
<div class="form-group">
<label for="inputTitulo">Título</label>
<input type="titulo" class="form-control" id="inputTitulo" ng-model="formData.titulo">
</div>
<div class="form-group">
<label for="inputTexto">Texto</label>
<textarea class="form-control" id="inputTexto" ng-model="formData.texto"></textarea>
</div>
<div class="form-group">
<label for="fecha">Fecha</label>
<input type="fecha" class="form-control" id="fecha" ng-model="formData.fecha" disabled>
</div>
<div class="form-group" >
<button class="btn btn-primary" style="height:35px;width:100px;float:right;" id="submit"
ng-disabled="isDisabled()">
Enviar
</button>
</div>
</div>
</form>
适用于此控制器:
var app = angular.module(&#39; app&#39;,[]);
app.controller('controlFormulario', ['$scope', function($scope) {
$scope.formData = { // Reservamos una variable que contendrá el texto del input.
"author":"",
"text":"",
"fecha": new Date()
};
$scope.isDisabled = function() {
return $scope.formData.text == "" || $scope.formData.author == "";
}
}]);
大多数数据绑定工作正常,但该按钮存在问题:它无法激活。我做了很多事情,从昨天开始就一直在努力解决这个问题,我可以写很多关于我尝试了多少东西以及它们实际上没有用的文字。这是我关于这个问题的第三个主题,所以也许你可以理解为什么我对这个愚蠢的事情感到非常沮丧。
这个想法很简单:如果我在作者和文本字段上写一些内容,那么该按钮应该处于活动状态。很简单!但是,为什么它不起作用呢?有什么想法吗?
编辑:我也尝试不使用$ scope并使用控制器功能,但它也没有用。
答案 0 :(得分:0)
以下是jsfiddle:http://jsfiddle.net/v821npgw/
你是混合范围和控制器,尝试使用一个。
我已经改变使用controllerAs以及为什么你的按钮永远不会被激活是因为你的禁用功能正在检查:
$scope.formData.text == "" || $scope.formData.author == "";
formData.author始终为true,因为您的作者为空。
要启用按钮,您需要在作者和文本输入字段中包含文本。