尝试使用ng-disable重新激活按钮时出现问题

时间:2015-08-06 14:16:03

标签: angularjs

我有这个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并使用控制器功能,但它也没有用。

1 个答案:

答案 0 :(得分:0)

以下是jsfiddle:http://jsfiddle.net/v821npgw/

你是混合范围和控制器,尝试使用一个。

我已经改变使用controllerAs以及为什么你的按钮永远不会被激活是因为你的禁用功能正在检查:

$scope.formData.text == "" || $scope.formData.author == "";

formData.author始终为true,因为您的作者为空。

要启用按钮,您需要在作者和文本输入字段中包含文本。