Фон
Я работаю с шаблонами jQuery, представлениями ASP.Net MVC Razor и Twitter.
Проблема
Использование шаблонов jQuery с некоторыми строками автоматически приводит к тому, что эти строки переносятся в "
Подробности
Я создал шаблон jQuery, который выглядит следующим образом:
<script id="twitterResultsTemplate" type="text/x-jquery-tmpl">
<div class="tweetItem">
<div class="userAvatar"><img src="${profile_image_url}" alt="${from_user} Image" /></div>
<div class="tweetSummary">
<div class="bd">before ${text.parseUserName().parseHashTag()} after</div>
<div>${created_at}</div>
<div class="ft">${prettyDate(created_at)}</div>
</div>
</div>
<br style="clear: both;" />
</script>
Следующий javascript форматирует имя пользователя и хэш-теги
String.prototype.parseUsername = function () {
return this.replace(/[@]+[A-Za-z0-9-_]+/g, function (u) {
var username = u.replace("@", "")
return u.link("http://twitter.com/" + username);
});
};
String.prototype.parseHashtag = function () {
return this.replace(/[#]+[A-Za-z0-9-_]+/g, function (t) {
var tag = t.replace("#", "%23")
return t.link("http://search.twitter.com/search?q=" + tag);
});
};
К сожалению, происходит то, что текстзавернутый в двойные кавычки. Итак,
Я ожидаю получить:
<div>before @user Hello World #hello #world after</div>
Вместо этого я получаю:
<div>"before @user Hello World #hello #world after"</div>
Почему двойные кавычки автоматически вставляются? Что более важно, как это предотвратить или исправить?
ОБНОВЛЕНИЕ
Я определилчто это происходит только тогда, когда @
включено в текст ... что происходит всякий раз, когда включается имя пользователя.
РЕШЕНИЕ
Я не совсем уверенпочему это решение работает, но оно работает. Я обновлю этот пост позже, чтобы лучше понять профессионала.blem.
Изменить (не работает)
<div class="bd">before ${text.parseUserName().parseHashTag()} after</div>
Кому: (работает)
<div class="bd">before {{html text.parseUserName().parseHashTag()}} after</div>