我有以下格式的数据返回
"yes | Yes no | No"
这个字符串代表了几件事。作为一个整体,它代表一系列单选按钮。在 | 的左侧 是单选按钮的实际值。右侧是标签。因此,该字符串表示以下内容:
是(值 = 是) 否(值 = 否)
字符串存储在一个巨大的对象中的几层深处,因此,我需要能够将各个组件拆分并使用它们,同时可靠地保持首先具有值,然后具有标签的模式。关于如何使用角度实现这一点的任何建议?
我有以下格式的数据返回
"yes | Yes no | No"
这个字符串代表了几件事。作为一个整体,它代表一系列单选按钮。在 | 的左侧 是单选按钮的实际值。右侧是标签。因此,该字符串表示以下内容:
是(值 = 是) 否(值 = 否)
字符串存储在一个巨大的对象中的几层深处,因此,我需要能够将各个组件拆分并使用它们,同时可靠地保持首先具有值,然后具有标签的模式。关于如何使用角度实现这一点的任何建议?
在数据返回的服务中,您需要编写一个函数来解析和组织它。您可以从自定义过滤器中受益,但它实际上不适用于此处,因为过滤器更传统地用于视图。这不是一个真正的角度问题,除非您的问题大致是如何在有角度的应用程序中做到这一点。
我同意@Fourth。这感觉不像是一个真正的“Angular”问题。它更多的是一个javascript问题。无论如何,这是我的单线解决方案(虽然它很毛茸茸):
var fullString = "yes | Yes no | No";
var parts = fullString.split(/[ |]/).filter(function(str){ return str !== '';});
// parts is now ["yes", "Yes", "no", "No"]
然后您只需使用数组中的值作为单选按钮的标签和值。含义,parts[0]
是第一个单选按钮的值,parts[1]
是标签。我知道这是一个非常麻烦的解决方案,但是无论谁决定将这些单选按钮的值编码为一个用空格和竖线分隔得很差的字符串,他们都是罪魁祸首。