Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么禁用ng不在按钮上工作?_Javascript_Angularjs_Angularjs Directive_Angularjs Scope - Fatal编程技术网

Javascript 为什么禁用ng不在按钮上工作?

Javascript 为什么禁用ng不在按钮上工作?,javascript,angularjs,angularjs-directive,angularjs-scope,Javascript,Angularjs,Angularjs Directive,Angularjs Scope,我的爱人: 我找到了,但在我的示例中它不起作用。该按钮被禁用,因为有disabled属性。这足以让浏览器知道元素必须处于非活动状态。禁用的属性的值不重要,可以是任何值 这正是Angular提供指令的原因,该指令在表达式计算为true时添加disabledattibute,在表达式计算为false时删除 在你的情况下,你应该使用 <button ng-model="main.my_button" ng-class="{ 'btn-success' : !tc.switchi

我的爱人:


我找到了,但在我的示例中它不起作用。

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

这正是Angular提供指令的原因,该指令在表达式计算为
true
时添加
disabled
attibute,在表达式计算为
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>  
我的按钮

我在这里看到了一些问题

首先,将disabled更改为ng disabled

第二,当你点击按钮时,一切都不会改变/发生。不要将该功能放入ng类中,而是使用类似ng click的方法来更改状态

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


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

谢谢,是的,我会在Plunks中使用ony$scope,我更喜欢在常规开发中使用

angular.module('app').controller('mainCtrl', function($scope) {
  vm = this;
  vm.btnDisabled = 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>