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>