Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 未使用不规则模型名称的余烬数据_Ember.js_Ember Data_Ember Cli - Fatal编程技术网

Ember.js 未使用不规则模型名称的余烬数据

Ember.js 未使用不规则模型名称的余烬数据,ember.js,ember-data,ember-cli,Ember.js,Ember Data,Ember Cli,在我的项目中,我为一个名字不规则的模型设置了一个拐点,campus 出于某种原因,在从Ember CLI 0.2.7更新到Ember CLI 1.13.8后,拐点不再应用于模型 尝试访问存储时,this.store.findRecord('campus',params['campus\u id'),我收到一条警告 WARNING: Encountered "campus" in payload, but no model was found for model name "campu" (res

在我的项目中,我为一个名字不规则的模型设置了一个拐点,
campus
出于某种原因,在从Ember CLI 0.2.7更新到Ember CLI 1.13.8后,拐点不再应用于模型

尝试访问存储时,
this.store.findRecord('campus',params['campus\u id')
,我收到一条警告

WARNING: Encountered "campus" in payload, but no model was found for model name "campu" (resolved model name using app@serializer:campus:.modelNameFromPayloadKey("campus"))
然后是这个错误

No model was found for 'campu' Error: No model was found for 'campu'
返回有效载荷看起来像这样

{
  campus: {
    id: 1,
    name: "Default Campus"
  },
  meta: {
    total: 1,
    page: 1
  }
}
我以前成功地使用了初始化器

import Ember from 'ember';

export function initialize(/* registry, application */) {
  var inflector = Ember.Inflector.inflector;
  inflector.irregular('campus', 'campuses');
}

export default {
  name: 'inflections',
  initialize: initialize
};
我已经尝试过更新到Ember Data的最新版本1.13.13,并将Ember拐点更新到1.9.3。我也尝试过将不规则的拐点移到模型中,但还没有解决这个问题

我还尝试在控制台中运行以下代码,然后调用商店查看拐点设置为什么

var inflector = Ember.Inflector.inflector;
inflector.singularize('campus') // returns "campus"
inflector.pluralize('campus') // returns "campuses"

这个问题非常令人沮丧,因为似乎根本没有办法解决它。

好吧,我能够用EmberData-2.0.1重现这种令人困惑的行为,它看起来像是ember数据中的一个bug

可能的解决办法:

//serializers/campus.js
import { ActiveModelSerializer } from 'active-model-adapter';

import Ember from "ember";
import DS from "ember-data";
const { normalizeModelName } = DS;
const { singularize } = Ember.String;

export default ActiveModelSerializer.extend({

  // this is dublication from source but singuralize works as expected
  modelNameFromPayloadKey: function(key) {
    return singularize(normalizeModelName(key));
  }

)};

嗯,我能够用EmberData-2.0.1重现这种令人困惑的行为,它看起来像是ember数据中的一个bug

可能的解决办法:

//serializers/campus.js
import { ActiveModelSerializer } from 'active-model-adapter';

import Ember from "ember";
import DS from "ember-data";
const { normalizeModelName } = DS;
const { singularize } = Ember.String;

export default ActiveModelSerializer.extend({

  // this is dublication from source but singuralize works as expected
  modelNameFromPayloadKey: function(key) {
    return singularize(normalizeModelName(key));
  }

)};

抱歉,忘记添加适配器类型。对于序列化程序,我使用的是来自的ActiveModelSerializer,但应用程序本身使用restaAdapter
inflector.unregular('campus','campuses')是打字错误吗?@Artych,我不知道你说的“打字错误”是什么意思。Ember.Inflector.Inflector.Unregular('campus','campus')应该告诉Ember campus是单数形式,复数形式是campus。这是预期的行为,也是更新之前发生的情况。对不起,忘记添加适配器类型了。对于序列化程序,我使用的是来自的ActiveModelSerializer,但应用程序本身使用restaAdapter
inflector.unregular('campus','campuses')是打字错误吗?@Artych,我不知道你说的“打字错误”是什么意思。Ember.Inflector.Inflector.Unregular('campus','campus')应该告诉Ember campus是单数形式,复数形式是campus。这是预期的行为,也是更新之前发生的情况