我很长时间都在使用余烬数据,但我从来没有情况检查模型中是否存在密钥。通常,我会检查模型中的键是否存在值
if(model.get('keyname')) {
console.log('value present')
}
但现在我想检查模型对象中是否存在关键字。任何帮助将不胜感激。
忘了提到这里 - 这里的模型是嵌入式记录,我的项目中没有用于嵌入式记录的模型文件(我自动为嵌入式记录生成模型)。所以,我无法使用属性或字段。
答案 0 :(得分:3)
您可以使用attributes或fields
说 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