2013-02-26 3 views
5

Я создаю приложение с backbone.js + require.js. Я хочу использовать DatePicker здесь в моем приложении: datepickerbootstrap-datepicker не получает подгонку с requirejs

Поскольку его неиспользованием AMD, я Призонная шайба его в requirejs так:

require.config({ 
baseUrl: "appjs", 

paths:{ 
    jquery: '../layout_assets/assets/js/libs/jquery-1.8.2.min', 
    dt: '../layout_assets/plugins/datatables/jquery.dataTables.min', 
    dtPlugins:'../layout_assets/plugins/datatables/dtplugins', 
    dtBootstrap: '../layout_assets/plugins/datatables/dataTables.bootstrap', 
    underscore: '../assets/js/underscore-min', 
    Backbone: '../assets/js/backbone-min', 
    bootstrap: '../assets/js/bootstrap.min', 
    datepicker:'../layout_assets/bootstrap-datepicker' 
    }, 

    shim: { 
     underscore:{ 
      exports:"_" 
     }, 

     Backbone:{ 
      deps: ['underscore','jquery'], 
      exports: "Backbone" 
     }, 

     dt: { 
     deps:['jquery'], 
     exports: "dt" 
     }, 

     dtPlugins: { 
      deps:['jquery','dt'], 
      exports:"dtPlugins" 
      }, 
     bootstrap: { 
     deps:['jquery'], 
     exports:"bootstrap" 

     }, 
     dtBootstrap: { 
      deps: ['dt','jquery'], 
      exports: "dtBootstrap" 
     }, 

     datepicker:{ 
     deps:['jquery','bootstrap'], 
     exports:"datepicker" 
     } 

     } 

}); 

В настоящее время в одном из моих взглядов я называю DatePicker так:

define(['Backbone', 
     'underscore', 
     'jquery', 
     'datepicker', 
     'models/reports', 
     'dtBootstrap', 
     'bootstrap', 
     'text!templates/reports/dashboard.html', 
     ],function(Backbone,_,$,dp,report,dtBootstrap,bootstrap,dashboard){ 


     var view=Backbone.View.extend({ 
      el:"#content-wrap", 
      template:_.template(dashboard), 
      render:function(){ 
      this.$("#container-left").html(this.template()); 
      console.log(dp); 
      } 

    }); 
    return view; 
    }); 

Это возвращает undefined на консоли. Я думаю, что библиотека не получает правильную подгонку.

+2

У меня такая же проблема. – Ryan

+0

У меня тоже такая же проблема. Вы когда-нибудь находили исправление для этого? –

ответ

0

Глядя на источник datepicker «s это выглядит как это не на самом деле экспорт ничего - вот почему requirejs не может найти глобальную переменную dt„подключиться“к (window.dt при запуске в среде браузера). Согласно сайту datepicker, он просто добавляет свою функцию к объекту jQuery, он не должен использоваться как отдельный экземпляр. Пример из статьи docs page:

$('#dp5').datepicker() 
    .on('changeDate', function(ev){ 
    if (ev.date.valueOf() < startDate.valueOf()){ 
     .... 
    } 

});

Вы пробовали что-то подобное?

Я считаю, что в этом случае обрезка не требуется.

5

Это прокладка, что я использую:

"datepicker" : { 
    deps: ["jquery-ui", "bootstrap"], 
    exports: "$.fn.datepicker" 
} 

для

"datepicker": "lib/datepicker/js/bootstrap-datepicker" 
+0

jQuery-ui необходимо? – Marek

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