2016-05-16 5 views
0

Я получаю сообщение об ошибке: «Неотображение referenceError: приложение не определено» в моей консоли JS при загрузке этого приложения Enyo на моем локальном хосте. Я совершенно новый для Enyo, поэтому я все еще пытаюсь изучить концепции видов и компонентов.Ошибка Enyo: «Uncaught referenceError: App не определен»

app.js (в исходной папке):

enyo.kind({ 
name: "App", 
kind: "FittableRows", 
classes: "enyo-fit enyo-unselectable", 
components: [ 
     { 
     kind: "onyx.Toolbar", 
     layoutKind:"FittableColumnsLayout", 
     components: [ 
      { 
       kind:onyx.Button, 
       style:"width:80px;background:green;", 
       ontap:"handleBtnBack", 
       content:"Back" 
      }, 
      { 
       content:"Header", 
       style:"text-align:center;", 
       fit:true 
      }, 
      { 
       kind:onyx.Button, 
       style:"width:80px;background:red;", 
       ontap:"handleBtnNext", 
       content:"Next" 
      } 
     ] 
    }, 
    { 
     kind: "Scroller", 
     horizontal:"hidden", 
     touch:true, 
     fit:true, 
     thumb:true, 
     components:[ 
     { 
       tag:"h1", 
       //This is how we insert css class. 
       classes:"padding15px", 
       content:"This is content area...Hello World!!!" 
      } 
     ]    
    }, 
    { 
     kind: "onyx.Toolbar", 
     // The footer 
     layoutKind:"FittableColumnsLayout", 
     components:[ 
      { 
        kind:"onyx.Button", 
        content:"Go Next Page", 
        ontap:"handleBtnNextPage", 
        fit:true 
      } 
     ] 
    } 
], 
create: function(){ 
    this.inherited(arguments); 
    console.log("App is created in memory"); 
}, 
rendered : function(){ 
    this.inherited(arguments); 
    console.log("App is created in rendered into DOM"); 
}, 
    handleBtnNextPage : function(inSender,inEvent){ 
     new Page2().renderInto(document.body); 
    }, 
    handleBtnNext: function(inSender,inEvent){ 
     new Page2().renderInto(document.body); 
    }, 
    handleBtnBack: function(inSender,inEvent){ 
     //For each enyo event handler comes with inSender, the control that sends the event and the inEvent the actual event itself. 
     alert("Back Button"); 
    } 
}); 

package.js (в исходной папке):

enyo.depends(
// Layout library 
"$lib/layout", 
// Onyx UI library 
"$lib/onyx", // To theme Onyx using Theme.less, change this line to $lib/onyx/source, 
//"Theme.less", // uncomment this line, and follow the steps described in Theme.less 
// CSS/LESS style files 
"../assets/css/app.css", 
// Include our default entry point 
"App.js", 
"Page2.js" 
); 

index.html (в корневой папке):

<!--My Copy--> 

    <!DOCTYPE html> 
    <html> 
    <head> 
     <title>IsGoodStuff.com Tutorial #2</title> 
     <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> 

     <link rel="shortcut icon" href="assets/favicon.ico"/> 

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

     <!-- --> 
     <script src="package.js" type="text/javascript"> </script> 

    </head> 
    <body> 
     <script type="text/javascript"> 
     new App().renderInto(document.body); 

     </script> 
    </body> 
    </html> 

ответ

0

Если ваш index.html находится в вашей корневой папке, но основной файл package.js находится в исходной папке, это, вероятно, ваш тег script, который загружает package.js. Попытайтесь:

<script src="source/package.js" type="text/javascript"> </script> 
0

Вы не поставили страницу2, но, похоже, код будет работать как есть.

Вот скрипку, показывающий рабочую страницу: http://jsfiddle.net/kgxvg7Lw/1/

Некоторые мысли:

1) Вы используете регистрозависимое файловую систему? Вы показываете app.js, но ваш package.js имеет App.js (с заглавной буквыми). 2) Вы уверены, что в консоли нет ошибок разбора?

Теперь, что сказано ... Возможно, вы не хотите перезагружать новое приложение для каждого переключателя «страница». Как правило, вы должны использовать что-то вроде панелей, чтобы приложение могло контролировать контент, который появляется на экране, и просто перемещаться между панелями по мере необходимости.