EmberJS中支持单字母单词模型
Are single-lettered word models supported in EmberJS?
我真的无法确定问题是Ember还是Ember数据,或者它是否是一个问题,但情况如下:
假设您的模型名为tell_me_a_story
。如果您使用ActiveModelAdapter,这将是JSON应该提供的名称。
无论如何,当Ember或EmberData在内部处理它时,它会将它客串化,并成为tellMeAStory
,这正确地表明"A"answers"Story"是两个独立的词。
然而,当在内部对其进行去melize以查找模型时,去melize函数会将其转换为tell_me_astory
。
在我看来,最后的行为似乎有缺陷,但当查看派生出这种行为的测试时,它实际上是为了以这种方式管理缩写词。(将下面的例子与"innerHtml"进行比较,这是我对驼色大小写多字母缩写词的期望。)
QUnit.test("converts a camelized string into all lower case separated by underscores.", function() {
deepEqual(decamelize('innerHTML'), 'inner_html');
if (Ember.EXTEND_PROTOTYPES) {
deepEqual('innerHTML'.decamelize(), 'inner_html');
}
});
(Ember运行时中的来源)
那么,在带有Ember的模型中使用单字母单词的正确方式是什么?他们甚至得到支持了吗
下面是我尝试做的一个例子:
// this comes from a separate data source, e.g. REST APIs
var myModelName = 'tell_me_a_story';
// this line will throw if the model file is named "tell-me-a-story"
if (!store.getById(myModelName, 1)) {
// this line will throw if the model file is named "tell-me-astory"
store.pushPayload(myModelName, myObject);
}
您可以覆盖存储_normalizeTypeKey
,然后更改camelBase行为,使其成为您想要的(例如,dasherized或只修复这种情况)。
当你走另一条路时,你也可以覆盖串行器typeForRoot
——这让你告诉ember数据中特定密钥(例如tell_me_a_story
)的模型密钥是什么(例如tellMeAStory
)。
似乎有工作正在进行中,以使一切都像容器一样工作(已dasherized)
相关文章:
- 在VanillaJS中模拟模型双向数据绑定
- 当鼠标悬停在文本中的单词上时显示警报
- 匹配一个单词,其中候选人可以跨越顺序组(跨度)
- 如何使用jquery强制一个单词更改大小写等以保留品牌
- 拆分单词jquery
- 为集合分配大量的模型弹药
- 如何使用backbone.js从集合中获取模型名称
- 如何让程序检查所选单词中是否有按键
- 如何在悬停时流畅地更改单词
- 骨干模型默认值-todos.js示例中不必要的代码
- EmberJS中支持单字母单词模型
- 2个backbone.js集合,具有相同的模型,但排序顺序不同
- 字母计数:返回重复字母数最多的第一个单词
- 将不在模型中的数据返回到mvc控制器
- 如何在Javascript中从字符串中提取某些单词
- 如何创建一个“;表单弹出框“;在chrome中右键单击时位于突出显示的单词上方
- 如何在视图模型contet更新更新上调用Jquery函数
- 如何使用Javascript客户端对象模型检索Sharepoint 2010列表项权限
- 我应该如何检查主干.主干.模型更改时查看
- Ext.js从json构建模型关系的问题