ngOptions按值进行比较

时间:2014-10-05 00:13:35

标签: 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>

但是,这总是会导致添加和选择空白选项。这是因为是按参考值而不是按值比较值。有没有办法强迫它使用价值?将当前的选择数据与用于生成选项的数据分开似乎是一件非常普遍的事情,或者我是否应该采用另一种方式解决这个问题呢?

1 个答案:

答案 0 :(得分:0)

我确实不确定您的问题来自参考检查;您使用的语法忽略了可选的&#34;选择&#34;参数,这使我假设绑定值的默认行为是有效的。这意味着,您将一个名称绑定到config.currentLanguage,它似乎最初包含一个&#34;代码&#34;值。我想这可能是你最初选择它的原因:你正在寻找一个&#34; en&#34;在仅包含&#34;英语&#34;。

的列表中

要解决此问题,假设您确实要存储代码,则应按如下方式编写ng-options:

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