angularjs中模型为空时如何隐藏下拉列表?

Posted

技术标签:

【中文标题】angularjs中模型为空时如何隐藏下拉列表?【英文标题】:How hide a drop-down list when the model is empty in angularjs? 【发布时间】:2014-08-19 11:23:39 【问题描述】:

我需要在模型为空时隐藏一个下拉列表,并在模型中有值时显示它。

    我有一个服务来获取值。

    angular.module('myApp.services', ['ngResource']) .factory('OptionsSelect', ['$resource', 功能($资源) return $resource('http://myapi/miapp/optionselect/1', , 询问: 方法:'GET', 参数: id:'1', 是数组:假 ); ])

    可能的结果是:

    "1":"红色","5":"蓝色","34":"蓝色"

<pre>

</pre>

    在控制器中:

    $scope.optionsSelect = OptionsSelect.query();

    观点是:

    可以在jsfiddle中查看代码:http://jsfiddle.net/finsi/LMJXC/38/

【问题讨论】:

您的查询表明它需要一个数组 (isArray: true),但您的结果不是数组,它只是一个对象。这会导致错误。 你是对的,但是是一个错字,在我的真实代码中我有“isArray:false”并且不起作用。谢谢。 【参考方案1】:

您好,我为您创建了 jsbin,请看一下。您应该将模型添加到您的选择指令并使用 $promise ,如下所示。我希望这会有所帮助。

html

 <div class="form-group" ng-show="optionsSelect">
    <select class="form-control" 
            ng-model="option.color"
            ng-options="key as value for (key, value) in optionsSelect">
 </div>

JS:

  app.controller('firstCtrl', function($scope, OptionsSelect)
    $scope.optionsSelect = ;

  OptionsSelect.query().$promise.then(function(optionSelectCollection)

    angular.copy(optionSelectCollection, $scope.optionsSelect);
  );




);

【讨论】:

对不起,不工作。如果我在控制器内部定义模型就可以了。但是当我从 OptionsSelect.query() 获取数据时没有。 您可以尝试使用 optionSelect.length >0。我总是显示或总是隐藏什么不起作用? ng-show="optionsSelect.length>0" 也不起作用 我这种情况下“optionSelect.length >0”总是隐藏。 您确定资源会返回任何数据吗?【参考方案2】:

所以这些选择的 optionsSelect 对象是未定义的,如果没有返回任何内容,它们将保持未定义,如果 返回某些内容,它们将成为对象。如果它们未定义,您可以隐藏它们吗?比如在这个小提琴...http://jsfiddle.net/LMJXC/40/

<div class="form-group" ng-hide="optionsSelect === undefined">

<div class="form-group" ng-hide="optionsSelect2 === undefined">

【讨论】:

谢谢。你的解决方案很好。但在我的代码中,我没有未定义的结果,我有这个:preproduccion.es/angular-demos/drop-down-list/error/img2.png。解决方案是来自 sylwester 的jsfiddle.net/LMJXC/41

以上是关于angularjs中模型为空时如何隐藏下拉列表?的主要内容,如果未能解决你的问题,请参考以下文章

AngularJS:输入字段为空时禁用按钮

当多个输入可以为空时,在 Django 中使用 Q 进行过滤

当我的列表为空时,如何显示图像或文本?

仅当它在 AngularJs 中有值时才需要下拉

如何删除下拉菜单上的填充

如何在angularjs的下拉列表中添加图像