首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Ember中,我如何访问在我的初始化器中定义的自定义inflector?

在Ember中,要访问在初始化器中定义的自定义inflector,可以通过以下步骤进行操作:

  1. 首先,在你的Ember应用程序中创建一个初始化器。可以在app/initializers目录下创建一个新的文件,例如custom-inflector.js
  2. 在初始化器文件中,使用ember-inflector库来定义自定义的inflector规则。你可以使用pluralizesingularize方法来定义单词的复数和单数形式。例如:
代码语言:txt
复制
import Inflector from 'ember-inflector';

export function initialize(application) {
  const inflector = Inflector.inflector;

  inflector.irregular('person', 'people');
  inflector.uncountable('sheep');
}

export default {
  initialize
};

在上面的例子中,我们定义了person的复数形式为people,并且将sheep设置为不可数名词。

  1. 然后,在同一个初始化器文件中,你可以通过application参数来访问应用程序的容器。使用容器的lookup方法来获取inflector实例,并将其存储在应用程序的某个全局位置,以便在其他地方使用。例如:
代码语言:txt
复制
export function initialize(application) {
  const inflector = Inflector.inflector;

  inflector.irregular('person', 'people');
  inflector.uncountable('sheep');

  application.register('custom-inflector:main', inflector, { instantiate: false });
  application.inject('route', 'customInflector', 'custom-inflector:main');
}

在上面的例子中,我们将inflector实例注册为custom-inflector:main,并将其注入到所有的路由中。

  1. 现在,你可以在任何路由或控制器中使用customInflector属性来访问自定义的inflector。例如,在路由中:
代码语言:txt
复制
import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';

export default Route.extend({
  customInflector: service('custom-inflector'),

  model() {
    const inflector = this.get('customInflector');
    const plural = inflector.pluralize('person');
    const singular = inflector.singularize('people');

    console.log(plural);   // 输出 'people'
    console.log(singular); // 输出 'person'
  }
});

在上面的例子中,我们通过customInflector属性获取了自定义的inflector实例,并使用pluralizesingularize方法来测试自定义规则。

这样,你就可以在Ember中访问在初始化器中定义的自定义inflector了。请注意,以上示例中的代码仅供参考,你可以根据自己的需求进行修改和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ThoughtWorks敏捷实践

早在2001年,17位追求卓越志愿者聚集美国犹他州雪鸟独家圣地,讨论一个新软件开发趋势,它被称作轻量型软件开发过程,后来他们将它定义为敏捷,并且发布了敏捷开发宣言:一种把以人为本、团队合作、快速响应变化和可工作软件作为宗旨开发方法...比较推荐DEVkick off后将Story划分成子任务列表,按照依赖关系和优先级排序,逐个干掉他们。...这需要有一个人记录问题(可以按天轮流),结束后交给Owner执行更改,并且下一次Code Review时候先过上一次更改。 必要时候拉长时间,条件允许下建议一个有大显示会议室中进行。...如若客户觉得每两周一次过于频繁,团队可以变通调整迭代周期,通常建议是1~4周,不宜太长,太短也没什么效果,至于如何权衡这个时间,有两点可以参考: 探索中找到适合团队迭代周期,如果发现每个迭代时间不够用...每个团队都是不同,不必拘泥于这些流程形式,而是要追求这些流程产生真正价值与意义。 PS:文章中提供链接在有网络情况下如果不能访问,确认自己是否可以访问外国网站,如不可以,切勿较真。

1.9K30

自定义排序算法JavaScript应用

前言处理数据时,我们常常需要对数组进行排序以满足特定展示或分析需求。虽然JavaScript提供了内置sort()方法来简化这一过程,但在面对复杂排序逻辑时,自定义排序函数则显得尤为重要。...本文将以一个具体案例——按照自定义规则对字符串数组进行排序,来深入探讨如何实现和应用自定义排序算法。...我们目标是根据这些字符串特定部分,按照一定规则(例如先按点前部分,再按点后数字部分排序)来对数组进行排序。...结论通过自定义排序函数,我们能够精确控制数组元素排序逻辑,从而满足各种复杂应用场景。理解并掌握这类算法不仅能够提升我们编程能力,还能在实际开发解决更多实际问题。...希望本文讲解和示例能够激发你对自定义排序函数兴趣,并在你项目中发挥重要作用。

8210

data自定义属性jQuery用法

(1)如果在HTML文档设置data-自定义属性单个字符串名称属性若有大写值,js文件获取时只能用小写形式获取。...如: HTMLdata-Role,获取当时为$(node).data(“role”); (2)如果在HTML设置data-role和data-Role是一样,html属性不区分大小写。...然后我们从验证结果可以看出,js只会找到第一个与其匹配就直接返回。 (3)如果用js来设置data属性,那么如果你定义是大写格式,则访问也必须是大写形式。...最后讲一下data()和attr()区别: (1) 是否需要传参: data() 可以不传入参数,这使获得是一个js对象,就算你html没有设置任何data自定义属性时,获得也是一个对象。...(4)data-attribute属性会在页面初始化时候放到jQuery对象,被缓存起来,而attr方法却不会。

2.9K20

反思管理犯过重大错误

近一年来,管理犯下2个重要错误。该错误导致团队结构不清晰,骨干核心人员不稳定,易流失。...1、资源错配 2、逮着一个人疯狂用 目录 1、背景描述; 2、如何犯错,以及为什么犯错; 3、这两个错误带来了哪些影响; 4、规避和改进方式; 一、背景描述 成立3年初创公司,10人编制测试团队...团队人员结构分布是 1个经理、2个高级、3级、4初级;组内划分是分成了3个小组,2个业务测试小组,一个测试基础小组。...组内结构划分可见下图所示: 二、如何犯错,以及为什么犯错 错误一:资源错配 对于组长选择,以及组内骨干选择,如下图所示: 其中标记为组长,是团队内部小组内被任命为小组长,标记为骨干...两个业务小组,初中级员工干中高级员工活,中高级人员为相对边缘角色。这样资源错配,直接引发了核心、骨干员工离职率高后果。 为什么会这样做: 本质上是一个“谁能谁上”还是“谁上谁能”问题。

1.1K10

PyTorch构建高效自定义数据集

特别喜欢一项功能是能够轻松地创建一个自定义Dataset对象,然后可以与内置DataLoader一起训练模型时提供数据。...本文中,将从头开始研究PyTorchDataset对象,其目的是创建一个用于处理文本文件数据集,以及探索如何为特定任务优化管道。...需要重写函数是不用说明希望!),并且对构造函数创建列表进行操作。...数据拆分实用程序 所有这些功能都内置PyTorch,真是太棒了。现在可能出现问题是,如何制作验证甚至测试集,以及如何在不扰乱代码库并尽可能保持DRY情况下执行验证或测试。...通过使用内置函数轻松拆分自定义PyTorch数据集来创建验证集。 事实上,您可以在任意间隔进行拆分,这对于折叠交叉验证集非常有用。对这个方法唯一不满是你不能定义百分比分割,这很烦人。

3.5K20

iOS系统相册创建自己App自定义相册

https://blog.csdn.net/u010105969/article/details/53412473 思路:要创建自己App自定义相册,首先要获取系统所有自定义相册,看这些自定义相册是否已经包含了我们自己要创建自定义相册...注意:iOS创建自定义相册之后并不会给我们返回一个相册对象,还需要我们自己根据一个标识去系统获取我们创建自定义相册。...代码: // 创建自己要创建自定义相册 - (PHAssetCollection * )createCollection{ // 创建一个新相册 // 查看所有的自定义相册 // 先查看是否有自己要创建自定义相册...// 如果没有自己要创建自定义相册那么我们就进行创建 NSString * title = [NSBundle mainBundle].infoDictionary[(NSString *)...PHAssetCollectionSubtypeAlbumRegular options:nil]; PHAssetCollection * createCollection = nil; // 最终要获取自己创建相册

2.2K10

WCF之旅(3):WCF实现双工通信

一、两种典型双工MEP 1.请求过程回调 这是一种比较典型双工消息交换模式表现形式,客户端进行服务调用时候,附加上一个回调对象;服务在对处理该处理,通过客户端附加回调对象(实际上是调用回调服务代理对象...步骤三:服务寄宿 我们通过一个控制台应用程序完成对CalculatorService寄宿工作,并将所有的服务寄宿参数定义配置文件。...预定义绑定类型,WSDualHttpBinding和NetTcpBinding均提供了对双工通信支持,但是两者在对双工通信实现机制上却有本质区别。...究其本质,这是一个死锁导致异常,由于默认情况是服务执行按Single并发模式进行,也就是说服务执行全程,服务对象只能被一个线程访问。...而另一方面,当回调操作客户端正常执行后,回到服务端试图访问服务操作时候,发现对象被服务操作执行线程锁住,所以它会等待服务操作执行完成后将锁释放。

1K100

4.自定义类加载实现及tomcat应用

三、自定义类加载实现 下面自己定义了一个类加载 第一步:自定义类加载继承自ClassLoader抽象类,然后定义一个构造方法, 用来接收要加载类名 第二步:重写核心方法findClass(String...name) 这里有两步操作, 第一个是: 从类路径读取要加载类文件内容, 自定义 第二个是: 调用构造类方法, 调用系统defineClass 接下来看看自定义loadByte是如何实现...原因是项目里已经有一个类User1了 我们自定义类加载父类是AppClassLoader....访问; catalinaClassLoader: tomcat容器私有的类加载, 加载路径class对于webapp不可见部分。...思考: tomcat自定义类加载, 有一个jsp类加载,jsp是可以实现热部署, 那么他是如何实现呢?

1.3K30

Visual Studio Code 添加自定义代码片段

无论是那个编辑,如果能够添加一些自定义代码片段,能够大大提升代码输入效率。 本文介绍如何在 Visual Studio Code 添加自定义代码片段。...你也可以使用 {1:label} 或 例如,通过以下代码片段来为插入博客目录: 1 2 3 4 5 6 7 8 9 10 11 { "Add toc to post": {...打开快捷命令输入框进入 Insert Snippet 命令,输入 toc 可以看到我们刚刚加入代码片段: 或者,带有智能感知提示文件,可以直接通过智能感知提示插入: 插入代码片段,... Visual Studio Code ,你有这些变量可以使用: -TM_SELECTED_TEXT - 插入代码片段时刻选中文本 -TM_CURRENT_LINE - 插入代码片段时刻光标所在行...这个时间之前也输入法调过:常用输入法快速输入自定义格式时间和日期(搜狗/QQ/微软拼音)。

69230

不同任务应该选择哪种机器学习算法?

当开始研究数据科学时,经常面临一个问题,那就是为特定问题选择最合适算法。本文中,将尝试解释一些基本概念,并在不同任务中使用不同类型机器学习算法。...强化学习是机器学习一个领域,它关注是软件agent应该如何在某些环境采取行动,以最大化累积奖励概念。 ? 想象一下,你是一个机器人,一个陌生地方,你可以完成活动并从所处环境获得奖励。...常用机器学习算法 现在我们对机器学习任务类型有了一些直观认识,让我们来探索一下现实生活应用最流行算法。 1.线性回归和线性分类 这可能是机器学习中最简单算法。...对于我们预先知道维度,递归神经网络(RNNs)包含LSTM或GRU模块,并且可以与数据一起工作。 结论 希望向大家解释最常用机器学习算法,并就如何根据特定问题选择一种算法给出建议。...为了简化你工作,已经准备好了它们主要特征结构化概述。 线性回归和线性分类:尽管表面上看起来很简单,但它们大量特征上非常有用,在这些特征,更好算法会因过度拟合而受到影响。

1.9K30

测试遇到app崩溃现象怎么办?

之后工作,我会实时补充统计。)...再通过操作数据库或其他手段进行构造脏数据,测试服务错误处理能力。2:再利用mock或抓包工具,强行修改返回值,测试app端容错能力。...测试办法就是测试点中计划好所有这种可以操作到消失实体情况,来进行模拟测试。或者抓包时强行更改请求实体,来达到请求一个不存在实体场景,观察服务如何处理并返回,app又是否会因此而崩溃。.../ 要进行手动破坏性测试,1:如删除本地文件,比如app要调取本地缓存4张图片,app刚要调用时候,已经选择好时候,切换到本地文件管理,删掉其中一个,那么app就会访问到一个不存在文件,会引发越界等代码报错...7.系统高优先级app问题 [直接原因]:导致自家app突然被挂起或放置后台 [引起原因]:突然来电话,突然收短信,闹钟,会议提醒系统原生app等情况 [测试方法]:各个页面,功能运行前后。

1.5K30
领券