[英]How do I show different options on dropdown?
I have got a dropdown button and I want to show different options depending on whether the difference between the current number and the preceding number is negative or positive. 我有一个下拉按钮,我想显示不同的选项,具体取决于当前数字与先前数字之间的差是负还是正。
How can I fix my code to make this work? 如何修复我的代码以使其正常工作?
<td id="diff" ng-model="diff">
{{val1 - val2}}
</td>
<td>
<div id="actnot">
<select name='act_id' id="aktion_1">
<option value='1' ng-show="diff <= 0">Option 1</option>
<option value='2' ng-show="diff >= 0">Option 2</option>
<option value='3' ng-show="diff >= 0">Option 3</option>
</select>
</div>
</td>
You can use ng-init to define your diff value : 您可以使用ng-init定义diff值:
<td ng-init="diff = val1-val2">
<div id="actnot">
<select name='act_id' id="aktion_1">
<option value='1' ng-show="diff <= 0">Option 1</option>
<option value='2' ng-show="diff >= 0">Option 2</option>
<option value='3' ng-show="diff >= 0">Option 3</option>
</select>
</div>
If it's not working (I didn't test the code) maybe you can do the diff inside your controller and add it to the $scope or model object. 如果它不起作用(我没有测试代码),也许您可以在控制器内部进行比较,然后将其添加到$ scope或模型对象中。
I have used ng-if
to hide and show options as ng-show
, by default shows the first option 我已经使用ng-if
将选项隐藏和显示为ng-show
,默认情况下显示第一个选项
<select>
<option value="one" ng-if="diff <= 0">One</option>
<option value="two" ng-if="diff >= 0">Two</option>
<option value="three" ng-if="diff >= 0">Three</option>
</select>
Try and use ng-if instead - 尝试使用ng-if代替-
var app = angular.module("myApp",[]); app.controller("myCntr",function($scope){ $scope.val1 = 9; $scope.val2 = 7; $scope.diff = $scope.val1-$scope.val2; });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <div ng-app="myApp" ng-controller="myCntr"> <td id="diff">{{val1 - val2}}</td> <td> <div id="actnot"> <select name='act_id' id="aktion_1"> <option value='1' ng-if="diff <= 0">Option 1</option> <option value='2' ng-if="diff >= 0">Option 2</option> <option value='3' ng-if="diff >= 0">Option 3</option> </select> </div> </td> </div>
You could try something like this,where the diff value is evaluated and then passed into the select tag,You also cannot assign a ng-model to a <td>
tag 您可以尝试类似的方法,先比较diff值,然后将其传递到select标记中,也不能将ng-model分配给<td>
标记
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.20/angular.min.js"></script> <div ng-app="myApp" ng-controller="myCtrl"> {{diff = val1 - val2}} <td> <div id="actnot"> <select name='act_id' id="aktion_1"> <option default>--Select--</option> <option value='1' ng-show="diff <= 0">Option 1</option> <option value='2' ng-show="diff >= 0">Option 2</option> <option value='3' ng-show="diff >= 0">Option 3</option> </select> </div> </td> </div> <script> var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { $scope.val1=3; $scope.val2=4; }); </script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.