Javascript 余烬应用程序&引用;“应用程序未定义”;

Javascript 余烬应用程序&引用;“应用程序未定义”;,javascript,ember.js,Javascript,Ember.js,我第一次尝试路由我的应用程序,但我不太明白其中的逻辑。将以下内容放入route.js文件时,我得到了呈现的模板: import Ember from 'ember'; import config from './config/environment'; var Router = Ember.Router.extend({ location: config.locationType }); Router.map(function() { this.route('main', { pat

我第一次尝试路由我的应用程序,但我不太明白其中的逻辑。将以下内容放入route.js文件时,我得到了呈现的模板:

import Ember from 'ember';
import config from './config/environment';

var Router = Ember.Router.extend({
  location: config.locationType
});

Router.map(function() {
  this.route('main', { path: '/' }, function() {

    this.route('helloworld', { path: '/'});
  });
});

export default Router;
大多数示例似乎使用App.router.map函数进行路由。首先,我不太明白有什么区别?路线是否存储在应用程序内或什么。当我尝试将此添加到route.js时:

import Ember from 'ember';
import config from './config/environment';

var Router = Ember.Router.extend({
  location: config.locationType
});

App.Router = Ember.Router.extend({
  enableLogging: true,
  location: 'hash'
});

App.Router.map(function() {
  this.route('main');
});

export default Router;

我得到:“未捕获引用错误:未定义应用程序”。那么,这里的正确方法是什么?我遗漏了什么?

一般来说,创建余烬应用程序有两种方法:

  • 建议使用Ember CLI
  • 使用globals-App.Router等
  • 在Ember CLI中,您不应访问全局应用程序变量。因此,您的
    router.js应该与第一个代码示例中的类似

    App
    没有在您的
    router.js
    中定义,因为它不是使用Ember CLI的方式

    在Ember CLI中,您使用跨多个目录拆分的模块和文件,而不是使用全局变量-
    App
    的一个大文件


    您应该进一步了解Ember CLI和Ember的基础知识。是最好的开始。

    你能发布
    router.js
    的所有内容吗。你在使用ember cli吗?@Artych我编辑了答案,现在有完整的内容。是,我使用的是ember-cli。ember-cli使用模块,不使用应用程序全局变量。模块的方法是导入Ember并定义var Router=Ember.Router.extend({…})@Artych-Oh这就解释了它。这应该是一个答案,我会接受的。