2016-07-04 6 views
1

バックボーンを使用している私の最初のWebページでポップアップを行いたいと思います。Backbone.jsとRequireJSでjQuery UIダイアログを使用する

define(['jquery', 
'jqueryui', 
'underscore', 
'backbone', 
'api', 
'text!' + versions.getVersionedPath('templates/form.html') 

function ($, jqueryui, _, Backbone, Api, Form) { 
    var widok = Backbone.View.extend({ 
     formularz: _.template(Form), 
     el: 'body', 
     events: { 
      'click #test': 'test', 
      'click .del': 'usun', 
      'click #elo': 'test2' 
     }, 
     initialize: function() { 
      this.$el.html(this.formularz()); 
      self = this; 
      console.log('This model has been initialized.'); 
      this.render(); 
     }, 
     render: function() { 
      console.log('Showing up'); 
        this.$el.html(this.formularz()); 
     }, 
     test: function() { 
      self.showNews(); 
      return false; 

     }, 
     test2: function() { 
      $("#dialog-confirm").dialog({ 
       resizable: false, 
       height: 140, 
       modal: true, 
       buttons: { 
        "Delete all items": function() { 
         $(this).dialog("close"); 
        }, 
        Cancel: function() { 
         $(this).dialog("close"); 
        } 
       } 
      }); 
     } 
    }); 

    return {initialize: function() { 
      console.log('Initialize'); 
      new widok; 
      self.showNews(); 
      console.log('blablablablabla'); 
     }}; 

}); 

私はこのような機能を持っているが、私はそれを使用しようとしているとき、私は、私はjQueryとjqueryuiを定義している

Uncaught TypeError: $(...).dialog is not a function. 

のようなエラーが発生しました。誰かが私を助けることができましたか?

は、あなたが共有コードに構文エラーがあり

shim: { 
    jqueryui: { 
    "deps": ['jquery'] 
    }, 
+0

あなたはjQueryのUIのためのシムを定義していますか? requirejs設定を投稿してください。 –

+0

はい、シムをjQuery UI用に定義しました:) – nEJVI

+0

jQuery Uiは実際に何かをエクスポートしないので、最後に追加する方が良いです。パスが間違っているのかもしれませんか?どんなバージョンのjQuery UIを使っていますか? –

答えて

0

、あなたは依存関係の配列閉じていないrequirejs設定でそれを持っています。

jQuery UIは、バージョン1.11.0のAMDをサポートしています。 AMDローダーで使用する場合はguideです。

最新のバージョンを使用している場合は、shimを設定から削除してください。それは次のように依存関係の終わりに、このようなものを追加することをお勧めですので、それは、何をエクスポートしていないので

また、モジュール内jqueryuiundefinedになりますのでご注意:

define([ 
    'jquery', 
    'underscore', 
    'backbone', 
    'api', 
    'text!' + versions.getVersionedPath('templates/form.html'), 
    'jqueryui'], 
function ($, _, Backbone, Api, Form) {}); 
関連する問題