2012-02-21 1 views
0

a newbe вопрос: Я скачал базовый шаблон с https://github.com/david0178418/BackboneJS-AMD-Boilerplate, он использует require.js, и мне интересно о навигации по коду во время разработки.с использованием Backbone JS-шаблона и кода навигации

Вот мой вопрос: скажем, у меня есть 2 просмотры один удлинить друга, как:

Вид 1:

define([ 
    'underscoreLoader', 
    'backboneLoader', 
    'text!templates/main.html' 
], 
    function (_, Backbone, MainTemplate) { 
     "use strict"; 

     return Backbone.View.extend({ 
      template:_.template(MainTemplate), 

      initialize:function() { 
       this.render(); 
      }, 

      log:function(msg){ 
       console.log(msg); 
      }, 

      render:function() { 
       this.$el.append(this.template({})); 
       return this; 
      } 
     }); 
    } 
); 

Вид 2:

define([ 
    'underscoreLoader', 
    'backboneLoader', 
    'text!templates/other.html', 
    'views/main-view' 
], 
    function (_, Backbone, MainTemplate,MainView) { 
     "use strict"; 

     // how would you navigate to MainView (main-view.js) 

     return MainView.extend({ 
      template:_.template(MainTemplate), 

      initialize:function() { 
       this.render(); 
      }, 

      render:function() { 
       this.log("my message"); 
       this.$el.append(this.template({})); 
       return this; 
      } 
     }); 
    } 
); 

Теперь, когда я develop (я использую IntelliJ), я бы хотел щелкнуть средним щелчком мыши MainView в расширенном виде и перейти к коду без необходимости просмотра дерево проекта.

Возможно ли использование этого шаблона? есть ли лучший подход или лучший шаблон?

+0

_Is, возможно, с использованием этого шаблона? _
Я не использовал IntelliJ, но это звучит крайне маловероятно, поскольку RequireJS отделяет ваше приложение, а переменная «MainView» может быть любой, с точки зрения статического анализа. И только во время выполнения это указывает на фактический MainView.
. Есть ли лучший подход или лучший шаблон? _
Не используйте RequireJS, если вы хотите IntelliJ. –

+0

Благодарим за ответ. Поскольку навигация по коду не ограничивается определенной IDE и является обязательной функцией на этапе разработки, мне бы очень хотелось найти решение, что означает: разделение файлов и все еще есть ссылка на код. –

+0

Javascript, по крайней мере для меня, является полным сдвигом парадигмы, когда дело доходит до инструментов разработки. Я использую только Notepad ++.Нет автозаполнения, автоматической подсветки ошибок, никаких помощников по рефакторингу и других подобных свойств, с которыми я привык при работе с сильно типизированными языками, такими как C#. Чем скорее вы это поймете, тем лучше, на мой взгляд :). –

ответ

0

Я нашел это подходящим для меня: Объекты Backbone обернуты моими пользовательскими объектами, что позволяет мне перемещаться по коду, расширять объекты и легко хранить несколько файлов.

Вот как:

Объект 1

function ItemModel() { 
    ItemModel.model = (
     Backbone.Model.extend({ 
      initialize:function() { 

      }, 
      defaults:{ 
       name:"item name" 
      }, 
      log:function(){ 
       console.log("inherited method"); 
      } 
     }) 
     ); 
    return new ItemModel.model(); 
} 

Объект 2

function ItemModel2() { 
    ItemModel2.model = (
     ItemModel.model.extend({ 
      initialize:function() { 

      }, 
      defaults:{ 
       name:"item name2" 
      } 
     }) 
     ); 
    return new ItemModel2.model(); 
} 

и в моем приложении:

var App = { 
    item:new ItemModel(), 
    item2:new ItemModel2() 
}; 
1

Я бы очень хотел, штурмана Netbeans, чтобы показать мне все методы:

var New_Controller = Backbone.View.extend({ 
    el : null, ... 
} 

Но я не могу заставить его работать. Google придумал что-то для @lends, но я даже не могу заставить Backbone.js загрузиться в кеш-код подсказки.

Я закончил установку WebStorm (я увидел IDE во всех уроках egghead.io), чтобы заставить навигатор перечислить все методы и свойства.

FYI, студия Aptana и студия Zend не показали ничего, как Netbeans. И Eclipse IDE для JavaScript Web Developers работает только частично (непрактично в реальной жизни); он выравнивает всю иерархию.