2013-12-09 2 views
1

У меня есть проект в Backbone и Im, используя require js (мне не нужно много опыта с требованием, чтобы это был мой первый проект с ним, на самом деле).Создать требуемый модуль JS, магистраль

Теперь. На моем home.js просмотра у меня есть много функций, как этот

iScroll: function() { 

       window.scrollers.myScroll = new iScroll(this.$('#products_container')[0], { 
        vScrollbar: true, 
        onScrollStart: function() {........... 

swipeMobile: function() { 
       $("#mobile_view").swipe({ 

        swipe: function (event, direction, distance, duration, fingerCount) { 
         if (direction == "left") {.... 

Я хочу, чтобы поместить все эти функции в одном модуле, разделенного Forexample «плагин» и вызвать функцию мне нужно в моем home.js посмотреть, когда я нужно это .

Im загрузки мои шаблоны на дому зрения, как этот

define([ 
     'text!templates/about.html', 
     'text!templates/home.html', 
     'text!templates/product.html', 
     'text!templates/contact.html', 
     'collections/products' 
    ], 

    function (aboutTemplate, homeTemplate, productTemplate, contactTemplate, Products) { 

Что самый простой способ сделать это?

ответ

2

Если набор функций является расширение магистральной модели, коллекции или View, вы можете сделать следующее:

define(['backbone'], function(Backbone) { 
    return Backbone.View.extend({ 
     customMethod: function() { 
      return this; 
     } 
    }); 
}); 

Тогда просто требуют путь к файлу, и вы можете использовать его как так :

require(['path/to/custom/view'], function(CustomView) { 
    var customview = new CustomView(); 
    customview.customMethod(); // returns the Backbone view 
}); 

Edit: Если у вас есть код, который не модель, коллекция или вид, вы можете сделать это вместо (предполагается, что это модуль без зависимостей):

define(function() { 
    var MyCustomHelper = function() { 
     this.someattribute = true; 
    }; 

    MyCustomHelper.prototype.customMethod = function() { 
     return this.someattribute; 
    }; 

    return MyCustomHelper; 
}); 
+0

Большое спасибо за это! Кстати, как бы это выглядело, если я не работаю с позвоночником, если просто хочу сделать простой модуль, чтобы потребовать его на страницах, в которых я нуждаюсь? – chipatama

Смежные вопросы