【问题标题】:using unicode symbols in ngOption <select>在 ngOption <select> 中使用 unicode 符号
【发布时间】:2015-04-22 08:40:19
【问题描述】:

您好,我遇到了一个困扰我的问题:

所以我有一个 ngOption 循环并显示 unicode 符号

<select class="form-control symbolSelect" ng-model="input.loadSymbol" ng-options="d as d.TagShpUTF for d in loadSymbols" ng-change=""></select>

这是一个 jsFiddle 示例,展示了它的工作原理:http://jsfiddle.net/tjm9a6o2/

我将数据源设置为具有这样的 unicode 字符:loadsymbols[0].TagShpUTF = '\u2660'

这一切都可以作为静态数据正常工作,但是当我尝试从我的数据库中提取数据时,它会将其显示为常规文本并且似乎不知道它是特殊的 unicode 字符。

这就是我在数据库中设置它的方式(不要介意其他列,TagShpUTF 是重要的列):

...我认为它正在做的是自动添加第二个斜杠'\',因此它可以是一个有效的字符串,但我不希望这种情况发生。我希望它被识别为 unicode,因此它在我的下拉列表中显示符号(如 jsFiddle),但它显示的是实际文本(如 '\u2660')。

任何建议都会非常有帮助。确实需要一种存储这些符号并将它们加载到下拉列表中的方法。我尝试了 HTML unicode 符号,但它们给我带来的问题比这种方法还要多。谢谢!

【问题讨论】:

  • 你能用debugger\console.log从数据库中拉出代表unicode符号的字符串吗?
  • @OrGuz 它仍然看起来像这样 TagShpUTF: "\u2660"。
  • 您是否尝试过使用“$sce.trustAsHtml(d.TagShpUTF)”来显示符号?在选项中:“..as $sce.trustAsHtml(d.TagShpUTF)”
  • 是的,我在 TagShpUTF 周围放置了一个过滤器,例如“d as (d.TagShpUTF | html)...”。过滤器“html”返回 $sce.trustAsHtml(input)。可悲的是,没有运气。
  • 当您将静态字符串与从数据库中检索到的字符串进行比较时,有什么区别? JSON.stringify(obj1) === JSON.stringify(obj2) 他们相等吗?

标签: javascript sql-server angularjs unicode ng-options


【解决方案1】:

尤里卡!!!

因此,经过多次痛苦的尝试并用尽了@OrGuz 的善意帮助,我有点放弃了使用 unicode 的 \u 版本,并再次开始查看 HTML-Code 版本。

我偶然发现this SO 帖子被埋在我一直在挖掘的垃圾中。它有一个指向关于 String.fromCharCode() 的 MDN 页面的链接

通过将 HTML 代码存储在我的数据库中并调用 String.fromCharCode() 我能够在下拉列表中加载符号。

spade: HTML-Code= &#9827;
       TagShpUTF= 9827

String.fromCharCode(TagShpUTF); <---- Works!

【讨论】:

    猜你喜欢
    • 2015-05-08
    • 1970-01-01
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    • 2014-07-10
    • 1970-01-01
    • 2021-11-22
    相关资源
    最近更新 更多