В чем разница? => Много.
Я думаю, версия this
используется для включения инкапсуляции, т. Е. Скрытия данных. Это помогает манипулировать частными переменными.
Давайте посмотрим на следующий пример:
var AdultPerson = function() {
var age;
this.setAge = function(val) {
// some housekeeping
age = val >= 18 && val;
};
this.getAge = function() {
return age;
};
this.isValid = function() {
return !!age;
};
};
Теперь структуру prototype
можно применить следующим образом:
У разных взрослых разные возрасты, но все взрослые получают одинаковые права. Таким образом, мы добавляем его с использованием прототипа, а не этого.
AdultPerson.prototype.getRights = function() {
// Should be valid
return this.isValid() && ['Booze', 'Drive'];
};
Давайте посмотрим на реализацию сейчас.
var p1 = new AdultPerson;
p1.setAge(12); // ( age = false )
console.log(p1.getRights()); // false ( Kid alert! )
p1.setAge(19); // ( age = 19 )
console.log(p1.getRights()); // ['Booze', 'Drive'] ( Welcome AdultPerson )
var p2 = new AdultPerson;
p2.setAge(45);
console.log(p2.getRights()); // The same getRights() method, *** not a new copy of it ***
Надеюсь, что это поможет.
Хотя это - конечно, не прямой ответ, в прошлом я нашел, что предпочитаю использовать RedCloth (или синтаксический анализатор Скидки с цены, если Вы не наслаждаетесь Тканью), и используйте простую текстовую область с предварительным просмотром AJAXy. Вообще говоря, WYSIWYG-редакторы имеют долгую историю создания избыточных тегов и подобный, ведя к потенциально лому HTML.
В то время как я знаю, что этому ответили, что я хотел добавить относительно использования ткани... Я полностью согласен, но я рекомендовал бы обработать его в before_save
фильтр. Скажем, у Вас есть поле базы данных, названное" details
" - просто добавляют тот, названный" details_html
". Затем сделайте что-то вроде этого...
before_save :convert_details
def convert_details
return if self.details.nil?
self.details_html = RedCloth.new(self.details).to_html
end
RedCloth может получить немного тяжелого процесса и если Вы постоянно обрабатываете материал на каждом рендеринге, Вы собираетесь столкнуться с некоторыми проблемами памяти... это просто поможет понизить некоторые Ваши необходимые ресурсы.
Я не уверен в Драгоценном камне Ruby, но , TinyMCE является настраиваемым, обычно стабильным WYSIWYG-редактором, который довольно прост интегрировать w/любой проект. Я использовал его неоднократно.
Я использую плагин FCKEditorOnRails: http://github.com/UnderpantsGnome/fckeditor_on_rails/tree/master
Примечание, что можно обычно заглядывать последней версии FCKEditor без большой тонкой настройки при столкновении с ошибками в более старой версии.
Взгляните на http://livepipe.net/control/textarea для редактора скидки с цены WYSIWYG с предварительным просмотром AJAXY, упомянутым в выбранном ответе.
Существует плагин для использования TinyMCE с направляющими, большой информацией об эти направляющие wiki .
+1 для FCKEditor - существует большой плагин направляющих, который включает помощников. Однако это часто - излишество, поскольку это показывает все. Во многих случаях что-то немного более простое, такое как WYSIWYG-редактор jQuery является большим для обертывания входа текстовой области.
Аналогичный вопрос: Какой лучший WYSIWYG для Rails - блог Ruby on Rails
Я только что вставил сюда свое решение.
Я настоятельно рекомендую вам попробовать WYSIHAT. Самая большая проблема с упомянутыми выше редакторами - это их громоздкий размер и "трудно настраиваемые" (возможности). Плохой код в большинстве этих редакторов сильно отталкивает. WYSIHAT больше похож на фреймворк для редактора WYSIWYG. Чрезвычайно легко настроить. Легко настраивается. И что еще ... Его поддерживают 37signals. Что я бы хотел в TinyMCE, так это его функция вставки из слова, которая сохраняет макет. Но если бы не одна эта функция, остальные мне показались бы очень громоздкими.
Прочтите, пожалуйста, эту статью: http://37signals.com/svn/posts/1330-introduction-wysihat-an-eventually-better-open-source-wysiwyg-editor
Учебное пособие по использованию WYSIHAT : Часть 1: http://jrmehle.com/2009/01/25/wysiwhat-wysihat-part-1/
Часть 2: http://jrmehle.com/2009/02/ 13 / wysiwhat-wysihat-part-2 /
И чтобы сделать вашу жизнь еще проще, Джефф Крефтмейджер (80beans.com) разработал для редактора 37signals WYSIHAT замечательный движок rails: http: // github. com / 80beans / wysihat-engine
И вот статья Джеффа Крифтмейера: http://www.80beans.com/2009/10/01/wysihat-engine/
Обновление на 2010 год. Я только что реализовал TinyMCE в приложении Rails с помощью tinyMCE gem.
Вы можете найти его здесь: http://github.com/kete/tiny_mce
Это заняло менее 5 минут, и в моем базовом тестировании оно работает отлично. Был зафиксирован коммит в июне 2010 года, так что похоже, что этот гем активно разрабатывается.
Надеюсь, это поможет некоторым гуглерам.