如何在AngularJS中禁用按钮?

时间:2016-06-29 15:35:04

标签: javascript html angularjs

  $scope.date = moment(currentDate);

  $scope.date1 = moment(currentDate).add(-1, 'days');

  function checkDate(){
   if ($scope.date > $scope.date1) {
    return true;
        }
      else{
       return false;
         }
 };

  checkDate(); 




  <button ng-disabled="checkDate()" ng-click="myFunc()" style="margin-left:190px; font-size:8.5px;     background-color: antiquewhite;
        border-color: white;"><strong>9:00Am-1:00PM</strong> <br><b>5:00PM-8:00PM</b></button>



    $scope.myFunc = function() {
    $scope.showMe = !$scope.showMe;
    $scope.showtime($scope.timeslot);
  }

我想禁用按钮但不要隐藏。 现在我不明白在禁用模式下代码按钮没有显示错误,myFunc()现在正在工作, 当按钮处于禁用模式,然后没有任何功能或说什么都没有点击按钮

2 个答案:

答案 0 :(得分:2)

checkDate() 

必须与scope相关联才能发挥作用。

<button ng-disabled="checkDate()" ng-click="myFunc()" style="margin-left:190px; font-size:8.5px;     background-color: antiquewhite;
        border-color: white;"><strong>9:00Am-1:00PM</strong> <br><b>5:00PM-8:00PM</b></button>

在控制器中定义checkDate

$scope.checkDate = function(){
   if ($scope.date > $scope.date1) {
         return true;
   }
   else{
         return false;
   }
 };

另外,请确保moment(currentDate)moment(currentDate).add(-1, 'days')必须返回javascript日期对象才能进行比较。

答案 1 :(得分:0)

根据评论更新答案。

如果你有3个按钮,如下所示,日期与那些相关联。

 <button ng-disabled="checkDate('2016-06-25')" ng-click="myFunc()" style="margin-left:190px; font-size:8.5px;     background-color: antiquewhite;
    border-color: white;"><strong>25/06/2016</strong> <br><b>5:00PM-8:00PM</b></button>

    <button ng-disabled="checkDate('2016-06-26')" ng-click="myFunc()" style="margin-left:190px; font-size:8.5px;     background-color: antiquewhite;
    border-color: white;"><strong>26/06/2016</strong> <br><b>5:00PM-8:00PM</b></button>

    <button ng-disabled="checkDate('2016-06-30')" ng-click="myFunc()" style="margin-left:190px; font-size:8.5px;     background-color: antiquewhite;
    border-color: white;"><strong>30/06/2016</strong> <br><b>5:00PM-8:00PM</b></button>

你需要在控制器中声明这样的函数。

var currentDate = new Date();

$scope.date1 = moment(currentDate).add(-1, 'days');

$scope.checkDate = function(buttonDate){


$scope.date = moment(new Date(buttonDate));  


if ($scope.date < $scope.date1) {

   return true;
}
else
{
   return false;
}
}

在这里检查工作人员https://plnkr.co/edit/J85Rx0YjhNKj0gYqjhhF?p=preview

希望这会对你有所帮助。