我是 Angular 1.5 的新手。我想要一个数组,当它为空时,我想禁用一个输入字段。当它不为空时,我想启用该字段。但它没有按预期工作。我整理了一个简单的 jsfiddle .
angular.module('demoApp', [])
.controller('MainController', MainController);
function MainController() {
var vm = this;
this.data = ['a', 'b'];
setInterval(function() {
if (vm.data.length === 0) {
vm.data = ['a', 'b'];
} else {
vm.data = [];
}
console.log('vm.data is now ', vm.data);
}, 2000);
}
和
<div ng-app="demoApp" ng-controller="MainController as mainCtrl">
<input type="text" ng-disabled="!data" />
<br />
data is {{ data }}
</div>
我希望每次执行 setInterval()
方法时,HTML 都会更新,因此输入会在启用和禁用之间循环。但不起作用,模板不输出数据数组。
最佳答案
由于您使用的是 Controller 实例,因此您需要使用其别名 mainCtrl
,以检查 data
是否为空或不检查其 length
属性.
<div ng-app="demoApp" ng-controller="MainController as mainCtrl">
<input type="text" ng-disabled="mainCtrl.data.length == 0" />
<br />
data is {{ mainCtrl.data }}
</div>
此外,您应该使用 $interval
而不是 setInterval
。
关于javascript - 根据 Angular 1.5 中的数组长度启用/禁用输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40171475/