javascript - ngOptions 按值比较

标签 javascript json angularjs ng-options

我有一个网络服务器 (node.js),它提供一个 JSON 文件,其中包含以下格式的语言列表:{ "en": "English", "fr": "French"}(等等)。还有一个单独的 JSON,它是设置字典:{ "currentLanguage": "en"} (还有其他设置)。

选择如下:

<select ng-options="for (code, name) in languages track by code" ng-model="config.currentLanguage"></select>

但是,这总是会导致添加和选择空白选项。这是因为它是通过引用而不是通过值来比较值。有没有办法强制它使用值(value)呢?将当前选择数据与用于生成选项的数据分开似乎是一件很常见的事情,或者我应该采取另一种方法来解决这个问题吗?

最佳答案

我实际上不确定您的问题是否来自背景调查;您使用的语法忽略可选的“select”参数,这使我假设绑定(bind)值的默认行为正在起作用。这意味着,您将名称绑定(bind)到 config.currentLanguage,该名称最初似乎包含“代码”值。我认为这可能是您最初无法选择它的原因:您正在仅包含“English”的列表中寻找“en”。

为了解决这个问题,假设您确实想要存储代码,您应该按如下方式编写 ng-options :

ng-options = "code as name for (code, name) in countries track by code"

关于javascript - ngOptions 按值比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26198408/

相关文章:

javascript - Angular 加载数据 OnScroll

javascript - 使用 Javascript 模拟远程 => 真实链接点击

javascript - ng-repeat 中的 Angular 切换过滤器

javascript - JS 点击时不触发

asp.net-mvc - 将动态 JSON 对象传递给 Web API - Newtonsoft 示例

javascript - 为什么我的网格没有填充给定的 JSON 数据

PHP MySQL : decrypt a column value from a MySQL row that was encrypted upon insertion and parse to JSON

angularjs - 多个指令 [myPopup、myDraggable] 请求新的/隔离的范围

javascript - 有没有办法单独删除 Canvas 对象(一个一个)fabric js

javascript - Symfony2 highcharts,改变颜色