2016-12-06 3 views
2

Вот мой код: шаблона:Угловая привязка данных не работает с названием китайской собственности?

<div> 
    时间: {{DataContext.时间}} 
</div> 

Вот 时间 "китайский символ, который означает, что время, и в файле транскрипт. Я определяю свойство DataContext.

export class TestClass { 
    @Input() 
    DataContext:any; 
} 

Но это не сработало, у меня есть ошибка. Вот сообщение об ошибке «Ошибки анализа шаблона: ошибка Parser: неожиданный токен Lexer Ошибка: неожиданный символ {{时间}} ......"

Мне очень нужна поддержка китайского символа, потому что данные json из старая система, и все свойства данных используют китайский символ.

Кто-нибудь может мне помочь?

+1

Думаю, вам нужно создать отчет об ошибке. –

+1

Да, я также сообщаю об этом здесь https://github.com/angular/angular/issues/13265 – Max

ответ

1

Я столкнулся с той же проблемой, и я создал службу/трубу, которая преобразует символы в Unicode, как показано ниже. Надеюсь, что это поможет (хотя это неправильный путь, но временно решить проблему)

var _escape_overrides = { 0x00:'\uFFFD',0x80:'\u20AC',0x82:'\u201A',0x83:'\u0192',0x84:'\u201E',0x85:'\u2026',0x86:'\u2020',0x87:'\u2021',0x88:'\u02C6',0x89:'\u2030',0x8A:'\u0160',0x8B:'\u2039',0x8C:'\u0152',0x8E:'\u017D',0x91:'\u2018',0x92:'\u2019',0x93:'\u201C',0x94:'\u201D',0x95:'\u2022',0x96:'\u2013',0x97:'\u2014',0x98:'\u02DC',0x99:'\u2122',0x9A:'\u0161',0x9B:'\u203A',0x9C:'\u0153',0x9E:'\u017E',0x9F:'\u0178' }; 

function escapeHtml(str){ 
    return str.replace(/([\u0000-\uD799]|[\uD800-\uDBFF][\uDC00-\uFFFF])/g, function(c) { 
     var c1 = c.charCodeAt(0); 
     // ascii character, use override or escape 
     if(c1 <= 0xFF) return (c1=_escape_overrides[c1])?c1:escape(c).replace(/%(..)/g,"&#x$1;"); 
     // utf8/16 character 
     else if(c.length == 1) return "&#" + c1 + ";"; 
     // surrogate pair 
     else if(c.length == 2 && c1 >= 0xD800 && c1 <= 0xDBFF) return "&#" + ((c1-0xD800)*0x400 + c.charCodeAt(1) - 0xDC00 + 0x10000) + ";" 
     // no clue .. 
     else return ""; 
    }); 
} 
+0

Спасибо, пожалуйста, дайте мне полный образец кода, где использовать этот канал, и здесь «时间» является свойством DataContext, мне интересно, если преобразовать его, привязка данных не будет работать. – Max

+0

Я пробовал это так: «

{{时间 | UnicodeConvert}}
», здесь «UnicodeConvert» - это новый канал с вашим кодом, я также использую трубку, просто возвращающую «время», она по-прежнему не работает. Есть идеи? – Max

Смежные вопросы