0

请帮助实现此类功能。如果选项值 == 1,隐藏下面的表格。

<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;
}

当前代码不起作用。请帮我实现这一点。谢谢。

4

3 回答 3

3

你可以参考指令selection中的:ng-hide

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

这是一个工作示例

于 2013-06-21T07:30:28.113 回答
1

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

$scope.$watch('selection',function(newValue){
    $scope.isHidden = newValue != '1';
});
于 2013-06-21T07:30:10.720 回答
0

您应该处理更改事件并将所有逻辑放入 JavaScript 文件。这不仅可以分离您的关注点,还可以更轻松地进行调试。您可以使用 $scope.$watch 并在控制器中不显眼地处理整个事情,但是由于您的逻辑将操纵 ui,因此最好在 uing-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';
    }
};`

我无法在我的手机上验证代码的功能,所以在我可以之前,让它作为一种方法的想法工作。我一到我的桌面就会测试代码。

于 2013-06-21T08:09:46.787 回答