Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   эскейп данных в модели (https://javascript.ru/forum/extjs/59313-ehskejjp-dannykh-v-modeli.html)

Infarch 05.11.2015 12:30

эскейп данных в модели
 
Здравствуйте!

У меня вопрос к знатокам: как правильно эскейпать html теги при отображении? Вот есть у меня модель данных, в ней поле Name. Эти данные отображаются на панели, а еще иногда редактируются. В базе и в модели они хранятся так как ввел юзер, если напихал тегов то значит так надо. Но вот при показе на панели данные идут из вьюмодели, где есть доступ к нужной модели данных:
{ xtype: 'panel',
	flex: 1,
	bind: {	html:
		'<table width="100%">' +
			'<tr><td>{localtext.heading.name}</td><td>{project.Name}</td></tr>' +
			'<tr><td>{localtext.heading.address}</td><td>{project.Address}</td></tr>' +
		'</table>'
	}
},


Поскольку в модели данные "чистые", то и на панель они приходят как есть, теги обрабатываются, получается безобразие. Как правильнее их заэкранировать? Использовать функции во вьюмодели? Иначе?

siber-biber 05.11.2015 13:13

{ xtype: 'panel',
	flex: 1,
	bind: {	html:
		'<table width="100%">' +
			'<tr><td>{localtext.heading.name:htmlEncode}</td><td>{project.Name:htmlEncode}</td></tr>' +
			'<tr><td>{localtext.heading.address:htmlEncode}</td><td>{project.Address:htmlEncode}</td></tr>' +
		'</table>'
	}
},

Infarch 05.11.2015 13:25

siber-biber, Спасибо! Это как раз то что надо!

siber-biber 05.11.2015 13:53

не за что. смотрите методы Ext.util.Format для полного списка того что можно юзать


Часовой пояс GMT +3, время: 12:33.