隐藏基于下拉列表中所选选项的输入值,ng重复ng隐藏
hide input values based on selected option in dropdown, ng-repeat ng-hide
如果没有JQuery,当在<select>
下拉菜单中进行选择时,我希望能够隐藏某些表单输入字段。
类似于此行为,但使用ng重复。更动态一点,使ng-hide使用某种isHidden函数调用ng.models属性,与所选值相比
以下是我的尝试:http://jsfiddle.net/Td2NZ/260/,ng隐藏为ng-hide="address.state === 'FL'"
=== FL
部分是硬编码"FL",但我想从ng repeat中重复的输入中得出。
Fiddle:http://jsfiddle.net/Td2NZ/261/
需要注意的几点是:确定某个内容是否隐藏的方法应该是要隐藏的输入的属性,而不是选择菜单选项。您在下拉列表affects: xxx
中有一个属性,现在它是输入的一个属性:hiddenBy: xxx
。同样为了隐藏标签,ng-hide
已移动到<div>
标签。这应该会让你开始。帮助解决此问题的另一个资源是http://plnkr.co/edit/SxIvt4KThWLtWvh3PnOh?p=preview
您提供的JSFiddle几乎可以工作,如果您希望它与硬编码的"FL"一起工作,请将===
更改为==
。===
检查类型和值,您真正想检查的只是值是否相等。最好始终使用===
,但在这种情况下应该使用==
。
有角度的
var myApp = angular.module('myApp', []);
myApp.controller('MyCtrl', function($scope) {
$scope.addresses = [
{'state': 'AL'},
{'state': 'CA'},
{'state': 'FL'}
];
$scope.lov_state = [
{'lookupCode': 'AL', 'description': 'Alabama'},
{'lookupCode': 'FL', 'description': 'Florida'},
{'lookupCode': 'CA', 'description': 'California'},
{'lookupCode': 'DE', 'description': 'Delaware', 'affects': 'hidden'}
];
$scope.inputs_text = [
{label: "Start Date", input:'yyyy-mm-dd', name:'dat_start', isRequired: "true"},
{label: "End Date", input:'yyyy-mm-dd', name:'dat_end', isRequired: "true"},
{label: "hide_for_FL", input:'wow', name:'hidden', isRequired: "true", hiddenBy: 'FL'}
];
$scope.isHidden = function(){
return message = (address.state === 'FL');
};
});
html
<div ng-controller="MyCtrl">
<div>Billing State:
<select ng-model="address.state" ng-options="state.lookupCode as state.description for state in lov_state" ng-init="address.state=1"></select>
<p> address.state: {{address.state}}</p>
</div>
<br> <tt>State selected: {{address.state}}</tt>
<div ng-repeat="input in inputs_text" ng-hide="(input.hiddenBy == address.state)">
<label>{{input.label}}</label>
<input name="{{input.name}}" id="{{input.name}}" ng-model="input.input" ng-require="input.isRequired"></input> <!-- function -- find address.state in the array, when match found get affects option and if it equals input.input return true -->
<p> Input: {{input.input}}</p>
</div>
</div>
相关文章:
- ng隐藏和ng显示无法正常工作
- Ng隐藏在Ng-click元素之外
- $scope变量,ng隐藏/显示
- 根据特定条件使用ng显示/ng隐藏来显示/隐藏元素
- 在Angular.JS-ng隐藏vs过滤器中将对象分隔为两组
- 为什么我的html节点保持类ng隐藏属性ng show=true
- ng显示ng隐藏在ng中,重复如何为每个包裹的块单击/触发
- AngularJS自定义指令ng显示/ng隐藏
- 访问一个控制器的ng隐藏值以在全局控制器中操纵另一个控制器中的ng样式
- Angular 1.2.x ng隐藏和ng显示css转换
- ng隐藏不't在异步apiService调用后从类中删除
- AngularJS:ng隐藏不工作
- 使用ng隐藏和收音机隐藏元素
- 角度模板不显示ng隐藏
- 如何使用ng隐藏和ng重复显示基于条件的元素
- ngAnimate CSS动画不适用于ng-show&ng隐藏
- ng隐藏&ng显示不能仅在特定的AngularJS页面中工作
- 隐藏基于下拉列表中所选选项的输入值,ng重复ng隐藏
- ng隐藏在angularjs问题中
- 有角度的ng显示/ng隐藏嵌套ng重复中的问题