繁体   English   中英

为什么ng-disabled无法处理按钮?

[英]Why is ng-disabled not working on button?

我的Plunkr: http ://plnkr.co/edit/4MkenJPczFbxy5aoillL?p =preview

在此输入图像描述

<body ng-controller="mainCtrl as main">

<h1>Hello Plunker!</h1>
<p>Button should not be disabled:</p>

<div ng-init="main.btnDisabled = false">
    <button ng-model="main.my_button"
         ng-class="{ 'btn-success' : !tc.switching, 'btn-disabled' : tc.switching }"
         disabled="main.btnDisabled"
         type="button"
         class="btn btn-info btn-sm switch-btn">My Button</button>  
</div>

angular.module('app').controller('mainCtrl', function($scope) {
  vm = this;
  vm.btnDisabled = false;
});

我在这里找到了这个答案 ,但它在我的例子中没有用。

该按钮被禁用,因为有disabled属性。 这足以让浏览器知道该元素必须处于非活动状态。 disabled attribute的值无关紧要,可以是任何内容。

这正是Angular提供ngDisabled指令的原因,该指令在表达式求值为true时添加disabled属性,并在其为false时删除。

在你的情况下你应该使用

<button ng-model="main.my_button"
        ng-class="{ 'btn-success' : !tc.switching, 'btn-disabled' : tc.switching }"
        ng-disabled="main.btnDisabled"
        type="button"
        class="btn btn-info btn-sm switch-btn">My Button</button>  

我在这里看到一些问题。

首先,将禁用更改为禁用ng。

其次,当你点击按钮时,什么都不会改变/发生。 不要将该功能放入您的ng-class,而是使用ng-click之类的东西来改变状态。

这不会导致您的问题,但请确保在将范围传递到控制器函数之前包含$ scope。

说到$ scope,如果你在示波器上放置一些内容而不是使用控制器别名,那么plunker会更容易阅读。 没问题,它可能会帮助您和其他人调试您的代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM