我有一個可以正常工作的骨幹應用程序,但有點沉重,因此我已經開始將它分成不同的文件,現在我有:如何從骨幹路由器訪問另一個文件中的骨幹視圖
backbone-view.js
backbone-router.js
...
我用我的骨幹路由器實例化視圖時,像這樣的URL變化:
var Router = Backbone.Router.extend({
routes: {
'our-approach.php': 'instantiateOurApproach',
'our-work.php': 'instantiateOurWork',
'who-we-are.php': 'instantiateWhoWeAre',
'social-stream.php': 'instantiateSocialStream',
'contact.php': 'instantiateContact'
},
instantiateOurApproach: function() {
if(window.our_approach_view == null) {
window.our_approach_view = new OurApproachView();
}
},
instantiateOurWork: function() {
if(window.our_work_view == null) {
window.our_work_view = new OurWorkView();
}
},
instantiateWhoWeAre: function() {
if(window.who_we_are_view == null) {
window.who_we_are_view = new WhoWeAreView();
}
},
instantiateSocialStream: function() {
if(window.social_stream_view == null) {
window.social_stream_view = new SocialStreamView();
}
},
instantiateContact: function() {
if(window.contact_view == null) {
window.contact_view = new ContactView();
}
}
});
我現在遇到的問題是,他們是在一個單獨的文件中聲明,所以我不能訪問視圖以下全部未定義:
OurApproachView()
OurWorkView()
WhoWeAreView()
SocialStreamView()
ContactView()
我曾嘗試做:
window.OurApproachView()
但是,這是行不通的。
我不確定我的下一步行動是什麼,如果任何人都可以提供幫助,那就太棒了。
謝謝!
編輯
OK所以看起來這樣做的:
window.OurApproachView()
不實際工作,有我的道歉,但沒有人有更好的建議?
我喜歡它,謝謝,我會試試這個。我是否認爲這是同一個窗口。但它只是一個自定義變量呢? – lukehillonline