You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Angular-UI Dropdown正确设置选中的<li>元素

我来帮你把这个Angular UI Bootstrap下拉框的实现整理清楚,附上完整的代码细节和关键说明:

Angular UI Bootstrap下拉框控件实现

第一步:HTML模板代码

我帮你格式化了代码缩进,让结构更清晰:

<div uib-dropdown class="btn-group">
  <button uib-dropdown-toggle class="btn btn-default">
    Open With <b class="caret"></b>
  </button>
  <ul role="menu" class="dropdown-menu animated fadeIn">
    <li 
      ng-repeat="list in templateList" 
      ng-click="setValue(list)"
      data-ng-model="selectedOption"
    >
      {{list.name}}
    </li>
  </ul>
</div>

第二步:完整的Angular控制器代码

你之前的控制器代码没写完,我补全了合理的实现逻辑,包括模拟数据源、选中赋值的方法:

angular.module('yourApp', ['ui.bootstrap'])
.controller('DropdownCtrl', function($scope) {
  // 模拟下拉选项的数据源
  $scope.templateList = [
    { name: 'PDF Viewer', value: 'pdf' },
    { name: 'Image Editor', value: 'image' },
    { name: 'Text Editor', value: 'text' }
  ];

  // 用于存储选中的选项
  $scope.selectedOption = null;

  // 点击下拉选项时的赋值函数
  $scope.setValue = function(list) {
    $scope.selectedOption = list;
    // 这里可以添加选中后的业务逻辑,比如触发文件打开操作
    console.log('选择了打开方式:', list.name);
  };
});

几个关键注意点

  • 必须确保你的项目已经引入了AngularJS和UI Bootstrap的相关文件(CSS和JS),不然uib-dropdown这类指令会无效
  • 在声明Angular模块时,一定要注入ui.bootstrap依赖项,就像上面代码里的angular.module('yourApp', ['ui.bootstrap'])
  • uib-dropdown-toggle指令负责触发下拉菜单的展开和收起,不需要额外写点击事件
  • ng-repeat遍历templateList生成每个下拉选项,点击时通过setValue方法把选中项绑定到selectedOption上
  • 你加的animated fadeIn类是用来给下拉菜单加过渡动画的,要生效的话需要引入Animate.css或者自己写对应的动画样式

内容的提问来源于stack exchange,提问作者Eugene Goldberg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:14:03