2015-08-11 3 views
8

मेरे कोड में test.js jquery-ui पर निर्भर है जो एएमडी पैटर्न और test.spec.js का उपयोग नहीं करता है jquery-ui, test.js पर निर्भर करता है जो AMD का उपयोग करता है पैटर्न। Test.spec.js. चलाते समय हम test.js में jquery-ui की निर्भरता लोड कर सकते हैं।एएमडी पैटर्न का उपयोग करने की आवश्यकता है jQuery यूआई घटनाओं के लिए त्रुटि देता है

require.config({ 

    baseUrl: '/demo', 

    paths: { 
     'jquery': '../library/jquery-1.11.1', 
     'jquery-ui': '../library/jquery-ui-1.11.4' 
    }, 
    shim: { 
     'jquery': { 
      exports: 'jQuery' 
     }, 
     'jquery-ui': { 
      deps: ['jquery'] 
     }, 
     'library/src/js/test': { 
      deps: ['library/jquery-1.11.1', 'library/jquery-ui-1.11.4', '../js/collapse'], 
      exports: 'Test' 
     } 
    }, 
    callback: window.__karma__.start 
}); 

test.js jQuery ui को खींचने योग्य घटना की "खींचने योग्य" में लिखा है। मूल्यांकन करने के बाद $('#panelId').draggable({revert: true}); त्रुटि

"TypeError: 'undefined' is not a function (evaluating '$('#panelId').draggable({revert: true})')"

require.config में test.js के लिए jQuery ui को लोड करने के लिए कैसे मिल गया। जैसा कि मैं अपने जैस्मीन परीक्षण मामलों को चलाने के लिए इसका उपयोग कर रहा हूं। वास्तविक वातावरण में यह अपेक्षित के रूप में काम कर रहा है, लेकिन जैस्मीन परीक्षण मामले में jquery-ui घटना नहीं मिल पाती है। test.js require.js का उपयोग नहीं कर रहा है, लेकिन test.spec.js एएमडी पैटर्न की आवश्यकता का उपयोग करता है।

test.spec.js कोड में

को क्रियान्वित करने के बाद इस jQuery ui को खींचने योग्य अपरिभाषित की त्रुटि मिली

define(['jquery-ui','library/src/js/test'], function ($) { 

}); 

मैं test.js में $ का उपयोग कर test.spec.js में jQuery ui तक पहुँचने के लिए, नहीं कर रहा हूँ जहां jquery-ui इवेंट test.js के रूप में लिखा गया है, एएमडी आवश्यक पैटर्न का उपयोग नहीं करता है। पता नहीं क्या गुम है। किसी भी मदद की सराहना की जाएगी ... :)

+0

यू अपने कोड के साथ jsfiddle बना सकता हूँ? – venkat7668

+0

लाइब्रेरी/src/js/test में venkat7668 मैं jquery-ui संदर्भ का उपयोग कर रहा हूं जो requ.js का उपयोग नहीं करता है, निर्भरता लोड करते समय यह लाइब्रेरी/src/js/test फ़ाइल निष्पादित करता है और jquery-ui ईवेंट को अनिर्धारित त्रुटि देता है। –

+1

तो आपका मतलब है कि 'लाइब्रेरी/src/js/test.js' एएमडी मॉड्यूल नहीं है? – tonyjmnz

उत्तर

3

इस अद्यतन का प्रयास करें js config की आवश्यकता होती है

उपयोग "पुस्तकालय/src/js/परीक्षण" अपने परीक्षण लोड करने के लिए

require.config({ 

    baseUrl: '/demo', 

    paths: { 

     'jquery': '../library/jquery-1.11.1', // assuming this is a correct path 
     'jquery-ui': '../library/jquery-ui-1.11.4' // assuming this is a correct path 
    }, 
    shim: { 
     'jquery': { 
      exports: 'jQuery' 
     }, 
     'jquery-ui': { 
      deps: ['jquery'] 
     }, 
     'library/src/js/test': { 
      deps: ['jquery', 'jquery-ui', '../js/collapse'], // changes done here 
      exports: 'Test' 
     } 
    }, 
    callback: window.__karma__.start 
}); 
+0

फेंक दी गई है मैंने इस दृष्टिकोण की कोशिश की थी लेकिन test.js पर jquery-ui पर निर्भरता है, जबकि मुझे test.spec.js. में jquery-ui संदर्भ मिल रहा है। test.js एएमडी पैटर्न/आवश्यकता का उपयोग नहीं कर रहा है। –

+0

तो यदि test.spec.js आवश्यकता का उपयोग नहीं कर रहा है तो आप अपने test.spec.js के लिए आवश्यक निर्भरताओं को कैसे लोड कर रहे हैं? – Kushal

+0

test.spec.js आवश्यकता का उपयोग करता है लेकिन test.js आवश्यकता का उपयोग नहीं कर रहा है। –

0

आपको अपनी फ़ाइल के पथ के बजाय jquery-ui का उपयोग करने की आवश्यकता है।

shim:{ 
    'jquery': { 
      exports: 'jQuery' 
      }, 
    'jquery-ui': { 
      deps: ['jquery'] 
     } 
} 

define(['jquery-ui','library/src/js/test'], function ($, test) { 
    //code goes here 
}); 
+0

का उपयोग नहीं कर रहा है मैंने इस दृष्टिकोण को काम करने वाले साथी की कोशिश नहीं की है ... यह त्रुटि त्रुटि देता है: स्क्रिप्ट त्रुटि: jquery-ui http://requirejs.org/docs/errors.html#scripterror –

+0

I अपडेट किया गया, इसे एक बार देखें – venkat7668

+0

ड्रैगगेबल इवेंट अपरिभाषित त्रुटि –

संबंधित मुद्दे