安贝App.router.“应用程序未定义”

Ember App.router. "App not defined"

本文关键字:未定义 应用程序 App router 安贝      更新时间:2023-09-26

我第一次尝试路由我的应用程序,但我不太理解逻辑。在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;

我得到:"Uncaught ReferenceError: App is not defined"。那么正确的方法是什么,我错过了什么?

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

  1. 使用Ember CLI,这是推荐的
  2. 使用全局变量- App.Router等

在Ember CLI中,你不应该访问全局应用变量。因此,您的router.js应该看起来像您的第一个代码示例。

App没有在你的router.js中定义,因为它不是烬CLI的方式。

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

你应该学习更多关于Ember CLI和Ember的基础知识。余烬指南是最好的起点。