javascript - 带有 ng-options 的 AngularJS DropDown

标签 javascript angularjs

假设我有一个这样的 Controller :

function MockController($scope) {
$scope.objs = [{"a": "true"},{"b": "false"}];
$scope.Value = "";
}

在 html View 中我会有类似的东西:

  <select class="input-block-level" ng-model="Value" 
  ng-options="(obj.key, obj.value) for obj in objs" required>

但是,无论我如何尝试,angular 似乎都不喜欢元组表示法。我试过没有括号也没有骰子。是否有一种通用的方法来处理 ng-repeat 中的哈希表/字典?也就是说,假设您不知道 key 的名称,并且 key 本身应该像这样使用:

<option value={{obj.key}}>{{obj.value}}</option>

最佳答案

我认为在 ng-options 中引用未知键是不可能的。

我可能会尝试在某个地方为数据编写一个包装器,将其转换成类似的东西:

[{"key": "a", "value": "true"},
 {"key": "b", "value": "false"}]

(这个问题非常有趣,我实际上已经写了一个:http://jsfiddle.net/RCU8M/ - 但是在没有 ECMAScript5 支持的浏览器中它不会工作,所以你可能想通过使用更优雅的解决方案来解决这个问题,比如 get keys of json-object in JavaScript 。)

关于javascript - 带有 ng-options 的 AngularJS DropDown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15915622/

相关文章:

javascript - 使用 node.js 提取所有超链接(来自外部网站)并请求

javascript - 如何使用 Chrome 扩展程序用于 URL 的更简单的正则表达式检查?

angularjs - Ng-Click 事件未触发

javascript - 简单的登录页面 - 表单方法发布不起作用

AngularJS:缩小破坏了我的指令

javascript - 重构 JSON 对象

javascript - D3.js 刻度格式 : show when month changes

javascript - Selenium +C# : ExecuteAsyncScript not working

javascript - Node-Red UI_Template 发送消息

javascript - 如果在其他浏览器选项卡中写入,则数据绑定(bind)到我的应用程序