目录
如何创建一个新的Ember项目
路由器和路由
控制器
模板
组件
Ember-Data
生成用户模型
生成用户路由
设置固定数据并生成用户模板
显示单个用户
编辑单个用户
结论
Ember和Ember CLI有什么区别?
如何安装Ember CLI?
我收到一条错误消息,提示“您必须位于Ember CLI项目内部才能使用serve命令”。这是什么意思?
如何使用Ember CLI创建一个新的Ember应用程序?
我应该了解哪些基本的Ember CLI命令?
如何使用Ember CLI构建我的应用程序以进行生产?
如何使用Ember CLI在我的Ember应用程序中生成新文件?
如何使用Ember CLI启动开发服务器?
如何更新Ember CLI?
.ember-cli文件的用途是什么?
首页 web前端 js教程 灰烬和Ember CLI入门

灰烬和Ember CLI入门

Feb 19, 2025 am 11:56 AM

Getting started with Ember and Ember CLI

核心要点

  • Ember CLI是一个为Ember构建的命令行工具,它结合了生成器、压缩器、CSS预处理器编译器、自动重载和ES6模块加载器等多种功能。它可以作为Grunt和Gulp等工具的替代方案,用于设置新的Ember项目。
  • Ember遵循约定优于配置的理念,这意味着它具有许多默认设置,可以简化开发过程。关键元素包括路由、控制器、模板、组件和Ember-Data。
  • 本教程提供了一个分步指南,介绍如何使用Ember CLI构建简单的联系人管理器应用程序。它涵盖了创建新的Ember项目、设置固定数据、生成用户模型和路由、创建用户模板以及添加显示和编辑用户信息的功能。
  • Ember是一个功能强大的JavaScript框架,适用于构建大型Web应用程序。借助Ember CLI,它提供了一个标准化的开发环境,可以更轻松地管理依赖项、自动化任务和执行最佳实践。

Ember多年来经历了许多变化。其中最大的一次变化是引入了Ember CLI,这是一个为Ember构建的命令行工具。它结合了生成器、压缩器、CSS预处理器编译器、自动重载和ES6模块加载器等多种功能。此命令行工具将帮助您减少在设置Grunt和Gulp等工具上花费的时间。可以说,对于任何全新的Ember项目,它都是这些工具的良好替代方案。在本文中,您将学习如何使用Ember CLI构建简单的联系人管理器应用程序。本教程与我在SitePoint上发布的其他关于Ember的文章略有不同,因为它们没有附带Ember CLI。但是,大多数这些概念仍然适用,因此我建议您查看它们并继续学习。本文的完整代码可在GitHub上找到。

如何安装Ember CLI

要安装Ember CLI,您需要先安装几个依赖项。第一个是Node.js。您至少需要0.12.x版本。接下来,需要安装Bower,可以通过运行以下命令来完成:

npm install -g bower
登录后复制
登录后复制
登录后复制
登录后复制

然后,要安装Ember CLI,请运行以下命令:

npm install -g ember-cli
登录后复制
登录后复制
登录后复制
登录后复制

如何创建一个新的Ember项目

在开始进行精彩的操作之前,您需要打开终端并按顺序执行以下命令,以便创建一个名为contactmanager的新项目文件夹:

ember new contactmanager
登录后复制
登录后复制
登录后复制

第二步,进入目录,然后使用以下命令安装所有npm和Bower依赖项:

cd contactmanager
npm install
bower install
登录后复制
登录后复制
登录后复制

此时,通过执行以下命令启动内置的Ember服务器:

ember serve
登录后复制
登录后复制
登录后复制

您现在可以在URL localhost:4200访问您的新应用程序。这是在本地计算机上运行的Ember应用程序的默认端口,但您可以根据需要更改它。如果您按照所有指示的步骤操作,现在应该在浏览器中看到一个标题,上面写着“欢迎使用Ember”。

Ember约定和结构

在深入构建应用程序之前,让我们回顾一下一些Ember约定。

路由器和路由

路由是Ember应用程序的入口点。路由在app/router.js文件中使用Router定义。它们允许您访问应用程序的不同部分。例如,如果您决定需要在应用程序中管理用户,则必须定义用户路由。您可以使用以下语法执行此操作:

npm install -g bower
登录后复制
登录后复制
登录后复制
登录后复制

这将为我们创建以下URL:

  • /users/
  • /users/index/
  • /users/loading/

按照惯例,当您定义路由时,Ember期望找到其他关联类型,例如路由、控制器和模板。我们可以决定显式创建这些类型,或者允许Ember为我们创建它们。在许多应用程序中,您很可能必须自己创建它们,但这取决于您。请记住,区分路由器和路由至关重要。我们上面创建的URL结构是使用路由器完成的。这些仅显示我们希望在应用程序中使用这些URL的意图。我们还没有创建实际的路由,而只是这些路由的URL。要创建路由,我们必须在routes文件夹中遵循此过程。如果您感到困惑,请不要担心,因为我将在本文后面更深入地探讨此主题。

控制器

控制器是一种用于存储视图状态的类型,位于app/controllers文件夹中。它们与路由协同工作。在这种情况下,上面的URL对应于/user/,并且需要一个名为/users/的控制器。同样在这里,我们可以自由选择是否自己定义它。控制器还定义视图操作(如点击、悬停等)的事件处理程序。

模板

模板是Ember的表示部分。您使用名为Handlebars的模板语言编写它,该语言编译成纯HTML。模板位于app/templates文件夹中。

组件

组件是小的自包含的功能块。您可以将它们视为表示和功能的组合,它们可重用且易于维护。

Ember-Data

这是一个由Ember核心团队维护的库,它补充了Ember核心,并充当管理数据模型的前端ORM。还有其他一些我以前没有使用过的替代方案,并且不在本文的讨论范围之内,因为我们将使用Ember-data。

应用程序

我们将构建的联系人管理应用程序将包括一个用户列表及其可用的联系信息。该应用程序将允许我们创建、编辑、删除和查看用户。为了使我们的应用程序简洁明了,我们将使用Ember CLI附带的固定适配器。这充当后端,除了数据不会在页面刷新时持久化之外。首先,如果您尚未创建,请使用ember new contactmanager创建一个新的Ember项目。

生成用户模型

移至项目文件夹并使用以下命令生成用户模型:

npm install -g ember-cli
登录后复制
登录后复制
登录后复制
登录后复制

这将在app/models中创建一个名为user.js的文件,其内容如下:

npm install -g bower
登录后复制
登录后复制
登录后复制
登录后复制

进行必要的更改,以使导出语句如下所示:

npm install -g ember-cli
登录后复制
登录后复制
登录后复制
登录后复制

这定义了我们的用户模型将具有的属性。

生成用户路由

现在,将以下几行添加到您的router.js文件中,以便为我们提供一些可用的URL:

ember new contactmanager
登录后复制
登录后复制
登录后复制

我们有三个新的URL。其中一个是列出用户,另一个是查看单个用户,最后一个是编辑用户信息。接下来,让我们使用以下命令创建一个用户路由:

cd contactmanager
npm install
bower install
登录后复制
登录后复制
登录后复制

此路由将用于检索我们的用户列表。使用以下代码段更改其内容:

ember serve
登录后复制
登录后复制
登录后复制

设置固定数据并生成用户模板

此时,让我们向我们的应用程序添加一些临时数据。为此,运行以下命令:

Router.map(function() {
  this.resource('users', function() {});
});
登录后复制

这会在app/adapters/文件夹中生成一个名为application.js的文件。默认情况下,Ember使用RestAdapter查询模型。此适配器假设您有一个后端系统,该系统向您的Ember客户端应用程序提供JSON数据。由于我们没有后端,在这种情况下,我们希望改为使用固定数据。因此,我们将更新适配器代码如下所示:

ember generate model user
登录后复制

并向您的用户模型添加以下内容以创建一些固定装置。

import DS from 'ember-data';

export default DS.Model.extend({
});
登录后复制

如果您导航到URL localhost:4200/users,您只会看到旧的问候消息,而不会看到我们刚刚添加的用户固定数据。要查看用户数据,我们需要使用以下命令为用户创建一个模板:

export default DS.Model.extend({
  firstName: DS.attr(),
  lastName: DS.attr(),
  addressLine: DS.attr(),
  postCode: DS.attr(),
  country: DS.attr()
});
登录后复制

这会在app/templates/文件夹中创建一个名为users.hbs的文件。打开此文件并将其内容更新如下:

Router.map(function() {
  this.resource('users', function() {
    this.route('show',{path: '/:user_id'});
    this.route('edit',{path: '/:user_id/edit'});
  });
});
登录后复制

您现在应该看到一个用户列表,每个用户旁边都有一个编辑文本。因为我们固定数据中只有一个用户,所以我们只会看到一个用户。您可以根据需要向用户固定装置中添加更多用户对象。只需确保每个对象都有一个唯一的ID。

显示单个用户

既然我们已经列出了我们的用户,让我们看看显示用户完整信息的方法。首先。通过将每个用户名旁边的“编辑”文本用链接括起来来更改users模板中的代码。然后,将“编辑”更改为:

ember generate route users
登录后复制

接下来,让我们使用以下命令生成一个用户控制器:

import Ember from 'ember';

export default Ember.Route.extend({
  model: function(){
    return this.store.find('user');
  }
});
登录后复制

在(用户控制器)内部,将内容更改为如下所示:

ember generate adapter application
登录后复制

完成后,使用以下命令生成一个用于编辑用户的模板:

import DS from 'ember-data';

export default DS.FixtureAdapter.extend({
});
登录后复制

目前,创建的模板(app/templates/users/show.hbs)为空。打开它并添加以下代码:

User.reopenClass({
   FIXTURES: [{
      id: 1,
      firstName: 'James',
      lastName: 'Rice',
      addressLine: '66 Belvue Road',
      postCode: 'M235PS',
      country: 'United Kingdom'
   }]
});
登录后复制

这样做,您应该能够看到您单击的每个用户的完整信息。

编辑单个用户

如果您想编辑单个用户,则必须遵循一些简单的步骤。首先,通过将每个用户名旁边的“编辑”文本用链接括起来来链接到用户编辑路由。然后,将“编辑”更改为:

npm install -g bower
登录后复制
登录后复制
登录后复制
登录后复制

接下来,让我们使用以下命令生成一个用户控制器:

npm install -g ember-cli
登录后复制
登录后复制
登录后复制
登录后复制

在(用户控制器)内部,将内容更改为如下所示:

ember new contactmanager
登录后复制
登录后复制
登录后复制

完成后,使用以下命令生成一个用于编辑用户的模板:

cd contactmanager
npm install
bower install
登录后复制
登录后复制
登录后复制

在新的模板app/templates/users/edit中,粘贴以下代码:

ember serve
登录后复制
登录后复制
登录后复制

此代码在提交表单时调用我们控制器上的saveUser()函数。该函数传递正在编辑的用户并保存修改后的信息。有了此更改,当您单击用户的编辑链接时,您可以编辑其详细信息。当您单击保存按钮时,您可以保存它们,之后您将被重定向回用户列表。万岁!我们现在有一个简单的联系人列表管理器。您可以通过将其连接到真实后端来将其转换为完整应用程序,以便在页面刷新时持久化数据。我还鼓励您向应用程序添加删除功能,以便您可以随时删除不需要的用户。

结论

Emberhttps://www.php.cn/link/0e0f9e664029e8912996d65c1cf09761是一个用于构建大型Web应用程序的框架。它具有约定优于配置的理念,这意味着它基于几个常见的决定,并且具有许多默认(约定),这使得您的开发过程更容易。这样,您在开发过程中就不必做出许多琐碎的决定。我希望您喜欢阅读本教程并学习了有关如何在您的项目中使用如此强大而简单的JavaScript框架的新知识。请在下面的评论中告诉我们您的想法。您可以在GitHub上找到应用程序的代码。

关于Ember入门和Ember CLI的常见问题

Ember和Ember CLI有什么区别?

Ember是一个用于构建Web应用程序的JavaScript框架,而Ember CLI是一个命令行工具,可帮助您创建、开发和构建Ember应用程序。Ember CLI提供了一个标准化的开发环境,使管理依赖项、自动化任务和执行最佳实践变得更容易。

如何安装Ember CLI?

要安装Ember CLI,您需要在系统上安装Node.js和npm。安装这些先决条件后,您可以使用终端中的以下命令安装Ember CLI:npm install -g ember-cli

我收到一条错误消息,提示“您必须位于Ember CLI项目内部才能使用serve命令”。这是什么意思?

当您尝试在Ember CLI项目目录之外运行ember serve命令时,会出现此错误。要解决此问题,请在运行ember serve之前,使用cd命令导航到项目的根目录。

如何使用Ember CLI创建一个新的Ember应用程序?

您可以使用ember new命令后跟应用程序的名称来创建一个新的Ember应用程序。例如,ember new my-app将创建一个名为“my-app”的新Ember应用程序。

我应该了解哪些基本的Ember CLI命令?

您应该了解的一些基本的Ember CLI命令包括ember new(创建新应用程序)、ember serve(启动开发服务器)、ember generate(生成新文件)和ember build(构建您的应用程序以进行部署)。

如何使用Ember CLI构建我的应用程序以进行生产?

您可以使用ember build命令并将--environment选项设置为“production”来构建您的应用程序以进行生产。该命令如下所示:ember build --environment production

如何使用Ember CLI在我的Ember应用程序中生成新文件?

您可以使用ember generate命令后跟文件类型及其名称来在Ember应用程序中生成新文件。例如,ember generate route about将生成一个名为“about”的新路由。

如何使用Ember CLI启动开发服务器?

您可以使用ember serve命令启动开发服务器。这将启动服务器,并使您的应用程序可在http://localhost:4200访问。

如何更新Ember CLI?

您可以先使用命令npm uninstall -g ember-cli卸载旧版本,然后使用命令npm install -g ember-cli安装新版本来更新Ember CLI。

.ember-cli文件的用途是什么?

.ember-cli文件是Ember CLI的配置文件。它允许您自定义Ember CLI项目的行为。例如,您可以指定开发服务器的默认端口,启用或禁用某些功能等等。

以上是灰烬和Ember CLI入门的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

前端热敏纸小票打印遇到乱码问题怎么办? 前端热敏纸小票打印遇到乱码问题怎么办? Apr 04, 2025 pm 02:42 PM

前端热敏纸小票打印的常见问题与解决方案在前端开发中,小票打印是一个常见的需求。然而,很多开发者在实...

神秘的JavaScript:它的作用以及为什么重要 神秘的JavaScript:它的作用以及为什么重要 Apr 09, 2025 am 12:07 AM

JavaScript是现代Web开发的基石,它的主要功能包括事件驱动编程、动态内容生成和异步编程。1)事件驱动编程允许网页根据用户操作动态变化。2)动态内容生成使得页面内容可以根据条件调整。3)异步编程确保用户界面不被阻塞。JavaScript广泛应用于网页交互、单页面应用和服务器端开发,极大地提升了用户体验和跨平台开发的灵活性。

谁得到更多的Python或JavaScript? 谁得到更多的Python或JavaScript? Apr 04, 2025 am 12:09 AM

Python和JavaScript开发者的薪资没有绝对的高低,具体取决于技能和行业需求。1.Python在数据科学和机器学习领域可能薪资更高。2.JavaScript在前端和全栈开发中需求大,薪资也可观。3.影响因素包括经验、地理位置、公司规模和特定技能。

如何使用JavaScript将具有相同ID的数组元素合并到一个对象中? 如何使用JavaScript将具有相同ID的数组元素合并到一个对象中? Apr 04, 2025 pm 05:09 PM

如何在JavaScript中将具有相同ID的数组元素合并到一个对象中?在处理数据时,我们常常会遇到需要将具有相同ID�...

JavaScript难以学习吗? JavaScript难以学习吗? Apr 03, 2025 am 12:20 AM

学习JavaScript不难,但有挑战。1)理解基础概念如变量、数据类型、函数等。2)掌握异步编程,通过事件循环实现。3)使用DOM操作和Promise处理异步请求。4)避免常见错误,使用调试技巧。5)优化性能,遵循最佳实践。

如何实现视差滚动和元素动画效果,像资生堂官网那样?
或者:
怎样才能像资生堂官网一样,实现页面滚动伴随的动画效果? 如何实现视差滚动和元素动画效果,像资生堂官网那样? 或者: 怎样才能像资生堂官网一样,实现页面滚动伴随的动画效果? Apr 04, 2025 pm 05:36 PM

实现视差滚动和元素动画效果的探讨本文将探讨如何实现类似资生堂官网(https://www.shiseido.co.jp/sb/wonderland/)中�...

JavaScript的演变:当前的趋势和未来前景 JavaScript的演变:当前的趋势和未来前景 Apr 10, 2025 am 09:33 AM

JavaScript的最新趋势包括TypeScript的崛起、现代框架和库的流行以及WebAssembly的应用。未来前景涵盖更强大的类型系统、服务器端JavaScript的发展、人工智能和机器学习的扩展以及物联网和边缘计算的潜力。

console.log输出结果差异:两次调用为何不同? console.log输出结果差异:两次调用为何不同? Apr 04, 2025 pm 05:12 PM

深入探讨console.log输出差异的根源本文将分析一段代码中console.log函数输出结果的差异,并解释其背后的原因。�...

See all articles