javascript - 根据 Angular 1.5 中的数组长度启用/禁用输入字段

标签 javascript angularjs

我是 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

Fiddle

关于javascript - 根据 Angular 1.5 中的数组长度启用/禁用输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40171475/

相关文章:

javascript - 使用javascript,如何从自动完成列表中选择点击的项目?

javascript - 如何在 Meteor 中导入 PIxi.js?

javascript - ng-view 不显示路线(angularjs)

javascript - 建立这样的网站所需的技术

javascript - 如何使用 Angular JS 为碳设计系统模式添加条件?

javascript - 如何将 Zurb Foundation 实现到 Rails 7?

javascript - Meteor 比较集合中的嵌入数组

javascript - 寻找与此 javascript 代码等效的 python

javascript - 如何在angularjs指令中使用动态模板

javascript - Angular JS 中的 JWT token 存储