2012-11-11 13 views
7

पर ऑब्जेक्ट या नल हो सकता है, मैं एम्बर से शुरू कर रहा हूं और बस इस tutorial का पालन कर रहा हूं। मैं Ember.js वेब से पिछले स्रोत डाउनलोड किया है और मैं निम्नलिखित कोड है:अनचाहे टाइपरर: ऑब्जेक्ट प्रोटोटाइप केवल एम्बर-1.0.0-pre.2

एचटीएमएल

<!doctype html> 
<html> 
<head> 
    <script src="js/libs/jquery-1.7.2.min.js"></script> 
    <script src="js/libs/ember-1.0.0-pre.2.min.js"></script> 
    <script src="js/libs/handlebars-1.0.0.beta.6.js"></script> 
    <script src="js/app.js"></script> 
</head> 
<script type="text/x-handlebars" data-template-name="application"> 
    Test 
</script> 
</html> 

app.js

App = Em.Application.create(); 

    App.ApplicationView = Em.View.extend({ 
    templateName: 'application' 
    }); 
    App.ApplicationController = Em.Controller.extend(); 


    App.Router = Em.Router.extend({ 
    root: Em.Route.extend({ 
     index: Em.Route.extend({ 
     route: '/' 
     }) 
    }) 
    }); 

    App.initialize(); 

यह एक सुंदर सरल उदाहरण लगता है, लेकिन मैं इन दो चीजों को देखने में असफल रहा:

1) एम्बर का स्रोत मुझे यह त्रुटि क्यों देता है:

Uncaught TypeError: Object prototype may only be an Object or null 

एम्बर कोड की पंक्ति 18 पर।

2) मैं इस ध्यान में न आया त्रुटि क्यों प्राप्त हो रही है अगर मैं टेम्पलेट को परिभाषित किया है:

Uncaught Error: <App.ApplicationView:ember143> - Unable to find template "application". 

उत्तर

5

हैंडल से पहले आवेदन टेम्पलेट डालने की कोशिश करो।

<!doctype html> 
<html> 
<head> 
    <script type="text/x-handlebars" data-template-name="application"> 
    Test 
    </script> 
    <script src="js/libs/jquery-1.7.2.min.js"></script> 
    <script src="js/libs/handlebars-1.0.0.beta.6.js"></script> 
    <script src="js/libs/ember-1.0.0-pre.2.min.js"></script> 
    <script src="js/app.js"></script> 
</head> 
</html> 
+0

वाह। वह चाल है। इसके अलावा मुझे एम्बर जोड़ने से पहले हैंडलबार को स्रोत में जोड़ने की आवश्यकता थी। हालांकि मुझे हैंडलबार से पहले एप्लिकेशन टेम्पलेट क्यों डालना होगा? – Nobita

+0

App.initialize() सभी एम्बर लोडहुक चलाता है, जिनमें से एक बूटस्ट्रैप है जो सभी टेम्पलेट लोड करता है। यदि आप टेम्पलेट के बाद App.initialize() को कॉल करते हैं, तो इसे काम करना चाहिए। यदि आप इसे बिल्कुल नहीं कहते हैं, तो यह स्वचालित रूप से प्रारंभ होता है। [https://github.com/emberjs/ember.js/blob/master/packages/ember-handlebars/lib/loader.js](https://github.com/emberjs/ember.js/blob/master/ पैकेज/एम्बर-हैंडलबार्स/lib/loader.js) – delwyn

+0

तो आपको वास्तव में बॉडी टैग नहीं रखना है? O_O –

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