2017-03-27 3 views
2

Ich benutze seit langer Zeit Glutendaten, aber ich hatte nie eine Situation, um zu prüfen, ob ein Schlüssel im Modell vorhanden ist. Im Allgemeinen, überprüfe ich, ob es in dem Modell alsWie überprüfe ich, ob das Embermodell einen Schlüssel hat?

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

ein Wert, der für einen Schlüssel ist aber jetzt will ich überprüfen, ob es in dem Modellobjekt ein Schlüssel vorhanden ist. Jede Hilfe wäre willkommen.

Vergessen zu erwähnen hier - Hier ist Modell der eingebettete Datensatz und ich habe keine Modelldatei in meinem Projekt für diesen eingebetteten Datensatz (ich bin automatisch Generieren von Modellen für eingebettete Datensätze). Daher kann ich keine Attribute oder Felder verwenden.

+0

Haskey = Ember.get (DSobject, 'Attribute') enthält (keyName) –

+0

Was Sie von 'Autoerzeugungs models' bedeuten kann.?. also ist das einfaches JavaScript-Objekt? – kumkanillam

+0

Nein, es ist kein einfaches JavaScript-Objekt, es ist eine Klasse, die DS.Model erweitert, aber ich habe keine Modelldatei im models-Ordner. Generieren von Modellen ist automatisch ein separates Konzept, unten ist die Zeile des Codes, der das tut (falls Sie wissen wollen). modelAttributes = { "name": DS.attr ('string'), ..... } application.register ('Modell: testModel', DS.Model.extend (modelAttributes)); –

Antwort

3

können Sie entweder attributes oder fields

Say 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'), 
    }); 

Attribute

Eine Karte, deren Schlüssel sind die Attribute des Modells (Eigenschaften, die von DS.attr beschrieben werden und deren Werte das Meta-Objekt für die Eigenschaft sind.

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); 
    }); 

Ausgang:

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

Felder

Eine Karte, deren Schlüssel die Felder des Modells und deren Werte sind Strings, die Art des Feldes beschreibt. Die Felder eines Modells sind die Vereinigung aller seiner Attribute und Beziehungen.

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); 
    }); 

Ausgang:

lastName attribute 
users hasMany 
+0

Aha Ich lese gerade meine Antwort, dachte über die Ausarbeitung nach, aber nach der Aktualisierung der Antwort sah ich OP bearbeitet Frage ... Müssen einen Weg finden – kumkanillam

Verwandte Themen