2012-06-22 18 views
5

का मिलान अंत मुझे एक यूआरएल में पथ से मिलान करने की जरूरत है। दिए गए पैटर्न के बाद पथ यूआरएल का अंत होना चाहिए, लेकिन मैं इसे नहीं कर सकता। Ember.js हमेशा इसे अगले स्लैश से मिलान कर देता है।एम्बर.जेएस रूटिंग: यूआरएल

var router = Ember.Router.extend({ 
    location: 'history', 
    enableLogging: true, 
    root: Ember.Route.extend({ 
     index: Ember.Route.extend({ 
      route: '/' 

      repo: Ember.Route.extend({ 
       route: '/:repo_id', 

       index: Ember.Route.extend({ 
        route: '/' 
       }), 

       files: Ember.Route.extend({ 
        route: '/files', 

        index: Ember.Route.extend({ 
         route: '/' 
        }), 

        sub: Ember.Route.extend({ 
         route: '/:path' 
        }) 
       }) 
      }) 
     }) 
    }) 
}); 
इस रूटर के साथ

:

  • /myrepo/files/ से मेल खाएगी root.repo.files.index
  • /myrepo/files/READMEpath=README
  • /myrepo/files/folder/README साथ root.repo.files.sub से मेल root.repo.files.sub से मेल खाएगी जाएगा और /myrepo/files/folder/ क्योंकि path=folder बजाय path=folder/README
  • करने के लिए मुझे कहीं और भेजें जाएगा

:path के साथ यूआरएल के अंत में उप-मार्ग कैसे मिल सकता है, भले ही इसमें स्लैश हो या नहीं?

उत्तर

3

यह कार्यक्षमता Ember.js भंडार के master शाखा को committed किया गया है। यह 1.0.0-pre2 बिल्ड में नहीं है, इसलिए जब तक कोई नया संस्करण जारी नहीं किया जाता है तो आपको या तो build Ember.js yourself या प्रीबिल्ट संस्करण ढूंढना होगा।

बेसिक प्रयोग

के बजाय एक कॉलन : से अपने डायनामिक खंड लगाकर, एक तारक * का उपयोग करें। आपका मार्ग इस तरह के सिंटैक्स का उपयोग करेगा:

Ember.Route.extend({ 
    route: '/:repo_id/files/*path' 
}); 

पथ सेगमेंट उपलब्ध होगा जैसे कि यह एक सामान्य गतिशील संपत्ति थी। हालांकि, इसमें यूआरएल में files/ के बाद कुछ भी शामिल होगा, जिसमें स्लेश भी शामिल हैं।

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