Javascript 如何根据所有下拉值的测试设置按钮文本?

Javascript 如何根据所有下拉值的测试设置按钮文本?,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我有一张单子。列表中的每个项目都是下拉列表 每个下拉列表的初始值或选定值为A 还有一个按钮 当我更改下拉列表值时,它应该更改按钮文本。这是目前的工作 我的问题是,当选定的下拉列表值是一个固定的按钮文本时。对于所有其他值,它不是固定的 假设以下规则:当所有下拉值都为A时,则按钮的文本必须固定,否则它不是固定的 您没有正确检查该状况。如果在任何时候最后选择的下拉列表的值不是A,您的代码将把按钮文本设置为“固定”。它不考虑所有其他下拉列表的值。这是实现您想要的目标的一种方法: var app=角度。

我有一张单子。列表中的每个项目都是下拉列表

每个下拉列表的初始值或选定值为A

还有一个按钮

当我更改下拉列表值时,它应该更改按钮文本。这是目前的工作

我的问题是,当选定的下拉列表值是一个固定的按钮文本时。对于所有其他值,它不是固定的


假设以下规则:当所有下拉值都为A时,则按钮的文本必须固定,否则它不是固定的

您没有正确检查该状况。如果在任何时候最后选择的下拉列表的值不是A,您的代码将把按钮文本设置为“固定”。它不考虑所有其他下拉列表的值。这是实现您想要的目标的一种方法:

var app=角度。模块'plunker',[]; 应用程序控制器'MainCtrl',函数$scope{ $scope.btn='固定'; $scope.arr=[1,2,3]; $scope.selectedValues={ [1] :“A”, [2] :“A”, [3] :“A” }; $scope.change=函数{ 如果 对象 .values$scope.selectedValues .EveryFunction{return e=='A';} { $scope.btn='固定'; }否则{ $scope.btn='未固定'; } } $scope.change; }; 安古拉斯普朗克 文件。书写; {{btn}} {{x} A. B C 如果您再次将第一个下拉列表B的值更改为A。它显示按钮文本是固定的,为什么

选择“A”时,文本是“固定”的,因为if语句说明如果值不是A,请将$scope.btn指定为“不固定”,否则将$scope.btn指定为“固定”

固定文本仅在每个下拉列表值为“”时显示


为了实现这一点,您必须以不同的方式分配$scope.btn。在重新分配变量之前,您还需要查看另外两个选择菜单的值,而不仅仅是引用传入的值。

使用箭头功能存在两个问题,这在所有浏览器中都不受支持。如果您是对的,请将其更改为支持所有浏览器。但结果仍然是一样的。
<!DOCTYPE html>
<html ng-app="plunker">
<head>
  <meta charset="utf-8" />
  <title>AngularJS Plunker</title>
  <script>document.write('<base href="' + document.location + '" />');</script>
  <link rel="stylesheet" href="style.css" />
  <script data-require="angular.js@1.4.x" src="https://code.angularjs.org/1.4.12/angular.js" data-semver="1.4.9"></script>
  <script src="app.js"></script>
</head>
<body ng-controller="MainCtrl">
  <button>{{btn}}</button>
  <div ng-repeat="x in arr">{{x}}
    <select class="selectpicker" ng-model="selectedValue" ng-change="change(selectedValue)">
      <option>A</option>
      <option>B</option>
      <option>C</option>
    </select>
  </div>
</body>
</html>
$scope.change = function(value){
  console.log(value);
  if(value !='A'){
    $scope.btn = ' NOT Fixed';
  }else{
    $scope.btn = 'Fixed';
  }
}