如何检查ember模型是否有密钥

时间:2017-03-27 21:33:45

标签: javascript ember.js ember-data

我很长时间都在使用余烬数据,但我从来没有情况检查模型中是否存在密钥。通常,我会检查模型中的键是否存在值

if(model.get('keyname')) {
  console.log('value present')
}

但现在我想检查模型对象中是否存在关键字。任何帮助将不胜感激。

忘了提到这里 - 这里的模型是嵌入式记录,我的项目中没有用于嵌入式记录的模型文件(我自动为嵌入式记录生成模型)。所以,我无法使用属性或字段。

1 个答案:

答案 0 :(得分:3)

您可以使用attributesfields

app / models / person.js

   import Model from "ember-data/model";
   import attr from "ember-data/attr";
   import { belongsTo, hasMany } from "ember-data/relationships";
   export default Model.extend({
      firstName: attr('string'),
      relations: hasMany('person'),
    });

<强>属性

一个映射,其键是模型的属性(由DS.attr描述的属性),其值是属性的元对象。

   import Ember from 'ember';
   import Person from 'app/models/person';
   let attributes = Ember.get(Person, 'attributes')
   attributes.forEach(function(meta, name) {
      console.log(name, meta);
    });

输出:

firstName {type: "string", isAttribute: true, options: Object, parentType: function, name: "firstName"}

<强>字段

一个映射,其键是模型的字段,其值是描述字段类型的字符串。模型的字段是其所有属性和关系的结合。

import Ember from 'ember';
   import Person from 'app/models/person';
   let attributes = Ember.get(Person, 'fields')
   attributes.forEach(function(meta, name) {
      console.log(name, meta);
    });

输出:

lastName attribute
users hasMany