javascript - 如何根据其他值在选择上显示特定值?

标签 javascript angularjs

我在 AngularJS 上有一个选择,其中显示了我从 API 获得的状态。这些状态是合约的可能状态。

我还从 API 获取了包含每个合约实际状态的合约。我希望根据我从 API 获得的状态,仅显示特定值。

例如,如果我从 API 获取 Accept 值,我希望只有 AcceptNo Accept 选项会显示在选择。与 In ProgressCancelProgress 选项的情况相同。

为了了解情况,我重现了一个简单的示例:

function StatesController($scope) {
    $scope.contracts = [{
        IdContract: "1",
        ActualState: "No Accept"
      }, {
        IdContract: "2",
        ActualState: "In progress"
      }, {
        IdContract: "3",
        ActualState: "Accept"
      }];
      
    $scope.states = [{
          StateName: "Accept"
        }, {
          StateName: "No Accept"
        }, {
          StateName: "In progress",
        }, {
          StateName: "CancelProgress"
        }];
}
table, th , td  {
  border: 1px solid grey;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular.min.js"></script>
<div ng-app ng-controller="StatesController">
  <table>
    <tr ng-repeat="contract in contracts">
      <td>{{contract.IdContract}}</td>
      <td>{{contract.ActualState}}</td>
      <td>
        <select ng-model="States" name="State">
            <option ng-repeat="state in states" ng-selected="state.StateName == contract.ActualState" value="{{state.StateName}}">{{state.StateName}}</option>
        </select>
      </td>
    </tr>
  </table>
</div>

在这种特殊情况下,只有 In ProgressCancelProgress 选项应该可用,而不是所有选项。

如何处理这些选择以仅在 AngularJS 上显示特定值?

P.S:我无权访问该 API,因此无法修改它的响应。

提前致谢!

最佳答案

如果我理解正确,您需要根据 $scope.selected 更改状态的值

我认为最好的方法是创建一个具有所选状态的可能状态的 API,并使用它来填充选择

例如

string[] getStates(int stateId)

关于javascript - 如何根据其他值在选择上显示特定值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46909317/

相关文章:

javascript - Ruby,Watir,无法单击由 Java 脚本加载的框架中的按钮

javascript - 请求 REST 服务

javascript - Angular js + 选择插件 + 将值设置为在下拉列表中选择

javascript - Angular 中使用模态窗口进行 Ng 重复和自动完成选择

javascript - 当 md-autocomplete 按下调用函数时

javascript - 将对象的值从字符串转换为数字

JavaScript AppendChild 在数组上创建元素

javascript - 如何使用javascript正确切换图像?

javascript - AngularJS,$routeProvider

javascript - Cordova 使用 SplashScreen 插件在另一个文件夹中查找 cordova_plugins.js