2012-07-13 10 views
5

में विभिन्न पृष्ठों पर RequJS और बैकबोन का उपयोग करके मैं पीछे में बैकबोन/RequJS में कोडइग्निटर के साथ एक वेब ऐप बना रहा हूं। इस प्रकार, यह एक पृष्ठ वेब ऐप नहीं है, बल्कि फिर भी कई नियंत्रकों के कार्यों के लिए सीआई का उपयोग करता है, और विभिन्न समय के लिए विभिन्न विचारों के लिए बैकबोन। मैं इस तरह RequireJS/रीढ़ सेटअप:कोडइग्निटर वेब ऐप

require.config({ 
    paths: { 
      jquery: "https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min", 
      underscore: "libs/underscore", 
      backbone: "libs/backbone", 
      //Lots of other stuff 
      }, 
    shim: { 
      backbone: { 
       deps: ["underscore", "jquery"], 
      } 
      // lots of other stuff 
    } 
    }); 

require(['views/app'], function(AppView){ 
    var app_view = new AppView; 
}); 

main.js हर पृष्ठ पर मेरे मालिक टेम्पलेट यानी में भरी हुई है, और बदले में का एक समूह को लोड करता है:

<script type="text/javascript" data-main="main" src="require.js"></script> 

main.js की तरह दिखता है विचार जो साइट/ऐप - हेडर, एनएवी, आदि में आम हैं

लेकिन विभिन्न पृष्ठों पर मैं आम लोगों के अलावा अलग-अलग विचार लोड करना चाहता हूं। अपने आप में लगभग एक ऐप्लिकेशन - - तो, ​​उदाहरण के लिए, एक पृष्ठ कहा जाता पर 'प्रकाशित करें' मुझे क्या करना:

<script type="text/javascript" src="publish.js"></script> 

कौन सा main.js के बाद लोड और ऐसा दिखता है:

//publish.js 
require(['views/publishview], function(PublishView){ 
var publishView = new PublishView; 
}); 

असल में, यह आधा समय काम करता है, और दूसरा आधा (जब मैं ताज़ा करता हूं) मुझे सबकुछ पर 404 मिलते हैं।

तो क्या सब कुछ के लिए मेरी बुनियादी आवश्यकता कॉन्फ़िगरेशन का उपयोग करने का एक साफ तरीका है, लेकिन अलग-अलग हिस्सों में अलग-अलग हिस्सों की भी आवश्यकता है? ऐसा लगता है कि पूरी चीज एक एसपीए थी, लेकिन मेरे लिए, ऐप का एक बड़ा हिस्सा अभी भी कोडइग्निटर के साथ है।

इस बेहतर वाक्यांश को phrasing के लिए खेद है।

उत्तर

1

सुनिश्चित नहीं हैं कि अगर यह सही तरीका है, लेकिन मैं क्या करना होगा:

(main.js)

:

टेम्पलेट (php)

<script type="text/javascript"> 
var myApp = {}; 
myApp.section = '<?= $section ?>'; //for exambple 'someSection' 
</script> 
<script type="text/javascript" data-main="main" src="require.js"></script> 

फिर, की तरह कुछ का उपयोग

var requires = { 
someSection: {files: ['views/app'], handler: function(AppView){ 
    var app_view = new AppView; 
}} 
}; 

var myRequire = requires[myApp.section] || null; 
if(myRequire) require(myRequire.files, myRequire.handler); 

या ... windows.location.pathname मान का उपयोग करें myApp.section