我使用燼數據很長一段時間,但我從未有過檢查模型中是否存在鍵的情況。一般情況下,我檢查,如果有一個現值模型中的一個關鍵的如何檢查燼模型是否有鍵
if(model.get('keyname')) {
console.log('value present')
}
但現在我要檢查是否有鍵在模型對象。任何幫助,將不勝感激。
忘了提到這裏 - 這裏模型是嵌入式記錄,我沒有在我的項目中的嵌入式記錄模型文件(我自動生成嵌入式記錄模型)。所以,我無法使用屬性或字段。
我使用燼數據很長一段時間,但我從未有過檢查模型中是否存在鍵的情況。一般情況下,我檢查,如果有一個現值模型中的一個關鍵的如何檢查燼模型是否有鍵
if(model.get('keyname')) {
console.log('value present')
}
但現在我要檢查是否有鍵在模型對象。任何幫助,將不勝感激。
忘了提到這裏 - 這裏模型是嵌入式記錄,我沒有在我的項目中的嵌入式記錄模型文件(我自動生成嵌入式記錄模型)。所以,我無法使用屬性或字段。
您可以使用attributes或fields
說應用程序/模型/ 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
啊哈我剛剛閱讀我的答案,想到闡述,但更新後的答案我看到OP編輯問題...需要找到一種方法 – kumkanillam
hasKey = Ember.get(DSobject, '屬性')包括(註冊表項目) –
你所說的'自動生成models'意思呢?。那這個普通的javascript對象呢? – kumkanillam
沒有它不是一個普通的JavaScript對象,它是一個擴展DS.Model的類,但我沒有模型文件在模型文件夾中。自動生成模型都是一個單獨的概念,下面是代碼的行(如果你想知道的話)。 (modelAttributes));我們可以通過下面的例子來說明如何使用這個模型:model.txt('model:testModel',DS.Model.extend(modelAttributes)); –