【问题标题】:Setting 'select' as default value in dropdown using angularjs使用 angularjs 在下拉列表中将“选择”设置为默认值
【发布时间】:2016-04-10 02:05:17
【问题描述】:

我正在尝试使用 angularjs 制作一个简单的下拉列表,并希望在下拉列表值更改时调用一个函数。只有当下拉选择是“A”时,我才想在我的页面中显示一些其他元素(比如“你好”)。 这是 jsfiddle http://jsfiddle.net/gkJve/932/

HTML

<div ng-controller="Ctrl">
    <select id="sel" class="input-block-level" ng-model="list_category" ng-options="obj.name for obj in list_categories" ng-change="DropDownChange()">    
        <option value="">Select</option>
    </select>
    <div ng-show="showdiv">
      Hello
    </div>
   <div>

角度

var app = angular.module('app', []);
    $scope.showdiv=false;
function Ctrl($scope) {  
    $scope.list_categories =  [{
            id: 'id1',
            name: 'A'
        }, {
            id: 'id2',
            name: 'B'
        }];       
      $scope.DropDownChange = function() {
      $scope.showdiv = angular.equals($scope.list_category.name,'A');
  }
}

结果 - 选择“A”时显示“Hello”,选择“B”时隐藏。但问题是,如果我选择“A”,然后将选择更改为“选择”,仍然会显示“你好”。我认为这是因为“选择”不是我的模型数据值之一,所以比较失败了。有没有其他方法可以在不向我的模型数据中添加“选择”的情况下完成这项工作?

【问题讨论】:

标签: html angularjs


【解决方案1】:

这样使用

<div ng-show="list_category.name == 'A'">

【讨论】:

  • 如此简单的解决方案!谢谢你。我认为 list_category.name 没有使用“选择”值更新,这就是比较失败的原因。但是现在我不明白为什么我的代码不起作用。有什么想法吗?
  • 因为您当时使用 ng-change list_category 设置为空.. 所以只是不工作
【解决方案2】:
var app = angular.module('app', []);
    $scope.showdiv=false;
function Ctrl($scope) {  
    $scope.list_categories =  [{
            id: 'id1',
            name: 'A'
        }, {
            id: 'id2',
            name: 'B'
        }];       
      $scope.DropDownChange = function() {
     if($scope.list_category == null || $scope.list_category == "")
     {
        $scope.showdiv = false;
     }
     else{
        $scope.showdiv = angular.equals($scope.list_category.name,'A');
     }

  }
}

Fiddle

【讨论】:

    猜你喜欢
    • 2013-11-23
    • 2013-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多