例如,我有一个包含div的ember视图,该div具有以下样式属性:
style="{{view.isClosing}};"
现在,我收到警告,指出此字符串未正确转义,并且可能使其容易受到XSS攻击。
我转到此链接:http://emberjs.com/deprecations/v1.x/#toc_warning-when-binding-style-attributes
然后尝试将其放在我看来:
isClosing: Ember.computed('display', function () {
if (this.get('conv.isClosing')) {
return new Ember.Handlebars.SafeString("display:");
} else {
return new Ember.Handlebars.SafeString("display: " + this.get('display'));
};
}),
警告不会消失,当我尝试使用函数escapeCSS,就像他们在doc中所说的那样,它告诉我没有定义escapeCSS。现在这是什么功能,我应该怎么做?
谢谢
答案 0 :(得分:2)
正如this blog post中所述,您希望使用Ember.String.htmlSafe
代替Ember.Handlebars.SafeString
。
isClosing: Ember.computed('display', function () {
if (this.get('conv.isClosing')) {
return new Ember.String.htmlSafe("display:");
} else {
return new Ember.String.htmlSafe("display: " + this.get('display'));
};
}),
答案 1 :(得分:1)
我相信GJK是正确的。你的问题是你包括了引号。
<div style="{{view.isClosing}};">
应该是
<div style={{isClosing}}>
答案 2 :(得分:0)
所以我做到了。
我只是返回一个等于“display:;”的变量,而不是使用Ember.String.htmlSafe()方法。或“display:none;”最后用htmlSafe()调用。仍然不知道为什么Ember方法不起作用。
感谢您的回答。