Ошибка Enyo: "Uncaught referenceError: Приложение не определено"

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

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>

2 ответа

Вы не предоставили Page2, но кажется, что код будет работать как есть.

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

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

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

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

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

<script src="source/package.js" type="text/javascript"> </script>
Другие вопросы по тегам