javascript - 如何将所选项目从 angular-ui 下拉列表发送回 Angular Controller

标签 javascript html angularjs angular-ui angular-ui-bootstrap

使用 angular-ui,考虑以下几点:

<div class="btn-group" dropdown is-open="status.isopen">
  <button type="button" class="btn btn-default btn-labeled dropdown-toggle fa fa-location-arrow" dropdown-toggle ng-disabled="disabled">
    Location: {{ loc }} <span class="caret"></span>
  </button>
  <ul class="dropdown-menu" role="menu">
    <li ng-repeat="choice in locations">
      <a>{{choice}}</a>
   </li>
  </ul>
</div>

应用程序:

var app = angular.module('Demo', ['ui.router', 'ui.bootstrap']);

app.controller('CrmCtrl', ['$scope', function ($scope) {
$scope.location = "Sutton Coldfield";
$scope.locations = [
    "Sutton Coldfield",
    "Coventry",
    "Redditch",
    "London",
    "Manchester",
    "Sheffield",
    "Dublin"
];
}]);

目的是让选择位置随着用户选择新位置而改变。即下拉列表以“位置:Sutton Coldfield”开头,例如应更新为“位置:考文垂”。例如,我可能还想使用边栏中的值。

示例和 Plunk:http://plnkr.co/edit/5giYygkYcVDJ6RvCKRMv?p=preview

为了实现这一点,我可以更新 $scope.loc 但我无法弄清楚的是如何“连接”或“推送”所选选项回 Controller 。

我也在寻找这样做的最佳实践方法,因为我这样做主要是为了我自己的个人学习。

我看过 some discussion关于在 A 元素上使用 ng-model,但它没有被占用。

最佳答案

您需要手动处理它,如果您想将其用作选择,它只是一个下拉菜单。您可以只对下拉列表的重复项设置 ng-click。

<a ng-click="setChoice(choice)">{{choice}}</a>

在你的 Controller 中:

$scope.setChoice = function(data){
  $scope.loc = data;
 //Do somethign else..
}

Plnkr

关于javascript - 如何将所选项目从 angular-ui 下拉列表发送回 Angular Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28266691/

相关文章:

javascript - 如何使用ajax和javascript将参数传递给 Controller ​​?

javascript - 如何使数组过滤器与异步函数端一起工作?

javascript - JavaScript 中 IF 语句的问题

javascript - "Failed: Error while waiting for Protractor to sync with the page"执行 Protractor 测试时

javascript - 获取 <div> 的所有子元素 &lt;input/> 和 <span> 的当前值/内容

Javascript:页面加载后在 <head> 中加载外部脚本

html - 检查了 div 中的输入 radio 启动颜色转换(仅 css)

HTML表格填充页面,一些列固定

angularjs - 将鼠标悬停在标记上时的 Angular 谷歌地图信息窗口/工具提示

angularjs - Angular JS 图像裁剪指令