2013-06-21 38 views
0

请帮助实施此类功能。 如果选项值== 1,请隐藏下面的表单。AngularJS - 当选择选项值等于特定值时隐藏表格

<select ng-model="selection"> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    <option value="5">5</option> 
<select> 

<form ng-hide="isHidden"> <!-- Form to be hidden when option value == 1 --> 
    <!-- Some html code here... --> 
</form> 

这里是控制器的一部分。

$scope.isHidden = true; 

if($scope.selection == '1'){ 
    $scope.isHidden = false; 
} 

当前的代码无效。请帮我实施这个。谢谢。

回答

3

你可以只参照selectionng-hide指令:

<form ng-hide="selection == '1'"> 
    <!-- Some html code here... --> 
</form> 

这里有一个working example

+0

我明白了。这就是它的工作原理。非常感谢。刚开始探索AngularJS。 :) – sharic19

1

您可以将watch添加到选择属性:

$scope.$watch('selection',function(newValue){ 
    $scope.isHidden = newValue != '1'; 
}); 
+0

它也有效。感谢您分享您的知识。 :) – sharic19

0

您应该处理更改事件并将所有逻辑放到JavaScript文件中。这不仅分离了您的顾虑,而且使调试更加容易。你可以使用$ scope。$监视和控制整个事情在控制器中不显眼,但是由于你的逻辑将会操纵UI,所以最好在UI的ng-change中提供一些逻辑的其他程序员的提示。这可以防止出现“表单到哪里去了?”之类的情况。接下来是一个小时的搜索逻辑。

HTML:

<form name="myForm"> 
    <select ng-model="selection" ng-change="handleSelectionChange()"> 
     <option value="1">1</option> 
     <option value="2">2</option> 
     <option value="3">3</option> 
     <option value="4">4</option> 
     <option value="5">5</option> 
    <select> 
</form> 

控制器:

$scope.handleSelectionChange = function(){ 
    if($scope.selection=='1'){ 
     document.myForm.style.display = 'none'; 
    } 
};` 

我无法验证码的功能,我的手机,所以直到我能,让这项工作作为一种方法的想法。我会尽快在我的桌面上测试代码。

相关问题