2016-10-12 9 views
0

Meteorは、meteor npm i selection-menu --saveでノードモジュールをインストールするだけで、うまくいくと言います。しかし、SelectionMenunew SelectionMenu({...})で試してみるとエラーになります。流星と選択メニュー

selection-menu.js:20 Uncaught TypeError: Cannot set property 'SelectionMenu' of undefined 

エラーがスローライブラリからの質問のコードは次のようになります。

(function (root, factory) { 
 
    if (typeof define === 'function' && define.amd) { 
 
     define(factory); 
 
    } else { 
 
     root.SelectionMenu = factory(); // this is where it fails 
 
    } 
 
}(this, function() { 
 
    //something here 
 
    
 
});

私は、これは、ライブラリが提供するローダーコードについてです推測し、おそらく流星と合わないのでしょうか?私はここで何ができますか、私は混乱しています。

マイコード:

import SelectionMenu from 'selection-menu'; 
    new SelectionMenu({ 
     container: document.getElementById("#document"), 
     content: '<a href="#test">test</a>', 
     handler: function(e) { 
      console.log("i selected something"); 
     } 
    }) 

EDIT私はちょうど私のディレクトリ内のライブラリーのクローンを作成し、そこからそれをロードします。それは働いていますが、理想的ではありません。それ以上のアイデアが出たら、教えてください。

+0

はあなたのファイルにパッケージをインポートしたことがありますか? 'selection-menu''からSelectionMenuをインポートしますか? –

+0

@MaxG。私がそれを行うとライブラリの同じ部分が失敗する – Yorrd

+0

@MaxG。またあなたの応答のために追加されたコード – Yorrd

答えて

0

Cannot set property 'SelectionMenu' of undefinedを教えてください。だから、あなたはどのようにライブラリを使用しようとしている何かが間違っています。

関連コンポーネント/テンプレートがレンダリングされていない場合は、それらを初期化する必要があります。炎で

(それがうまくいくかもしれない、これを試してみてください。):

import SelectionMenu from 'selection-menu'; 

Template.templateName.onRendered(function() { 
    new SelectionMenu({ 
     container: document.getElementById("#document"), 
     content: '<a href="#test">test</a>', 
     handler: function(e) { 
      console.log("i selected something"); 
     } 
    }) 
}); 
+0

を見てください。エラーは私のコードではなく、ライブラリにあります。私が示した部分は、ライブラリ.jsファイルの最初の行です。 https://github.com/iDoRecall/selection-menu/tree/gh-pages/src – Yorrd

+0

@Yorrdあなたはあなたの質問のようにあなたのコードに入れてしまったのでしょうか?そうでなければonRendered()で初期化しましたか?私はこれが図書館に起因するとは思わない。 – Luna

+0

私は火炎ではなく合成(ポリマー)を使用していますが、私はそれをほぼ同等のPolymer ready()関数に入れました。ただし、そのコードに到達する前にライブラリをインポートする際にエラーが表示されます。 – Yorrd