2012-11-11 11 views
7

Zaczynam od Embera i podążam za tym tutorial. Pobrałem ostatnie źródło z ember.js internecie i mam następujący kod:Uncaught TypeError: Prototyp obiektu może być tylko obiektem lub wartością pustą na ember-1.0.0-pre.2

HTML

<!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(); 

wydaje się dość prosty przykład, ale nie widzę tych dwóch rzeczy:

1) Dlaczego źródło Ember daje mi ten błąd:

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

W linii 18 kodu źródłowego.

2) Dlaczego wciąż otrzymuję ten nieprzechwycony błąd, gdybym zdefiniowaniu szablonu:

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

Odpowiedz

5

spróbuj umieścić szablon aplikacji przed kierownicą.

<!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

Wow. To wystarczyło. Również musiałem dodać do źródła kierownicę przed dodaniem embera. Dlaczego jednak muszę umieścić szablon aplikacji przed kierownicą? – Nobita

+0

App.initialize() uruchamia wszystkie loadHooki Ember, z których jednym jest bootstrap, który ładuje wszystkie szablony. Jeśli wywołasz App.initialize() po szablonie, powinno działać. Jeśli w ogóle go nie nazwiesz, inicjalizuje się automatycznie. [https://github.com/emberjs/ember.js/blob/master/packages/ember-handlebars/lib/loader.js](https://github.com/emberjs/ember.js/blob/master/ pakiety/ember-handlebars/lib/loader.js) – delwyn

+0

Więc nie musisz umieszczać znaczników body? O_O –

Powiązane problemy