Gibt es eine Möglichkeit, die Instanz eines Objekts zu überprüfen, das von einer AngularJS
Fabrik erstellt wurde?AngularJS get Instanz des Fabrikobjekts
angular.module('so')
.factory('UserFac', function() {
return function (first, last) {
return {
name : first + ' ' + last
};
}
})
.controller('UserCtrl', function (User) {
var user = new UserFac('John', 'Doe');
function isUser(userObj) {
// your answer here...
}
if (isUser(user)) {
// does not matter
}
});
Leider fand ich keinen Weg, um die Instanz des Factory-Objektes durch die üblichen JavaScript Möglichkeiten, wie zu überprüfen:
user instanceof UserFac
oder
typeof user === 'UserFac'
oder
user.constructor === UserFac
oder
Es sieht aus wie der interne AngularJS
-Code für Fabriken/Dienste die Prototyp/Konstruktor-Eigenschaft verbirgt.
Websuche ist ziemlich schmerzhaft, da (die meisten) alle Ergebnisse den Unterschied zwischen einem Service und einer Fabrik betreffen.
Danke für Ihre Hilfe!
Das ist es! Vielen Dank für Ihre schnelle Antwort. Sieht aus wie der Name der Konstruktorfunktion nicht unbedingt benötigt wird und der Hauptpunkt war die Verwendung von "this". Der folgende Code sollte auch den Trick machen: angular.module ('so', []); angular.module ('so') .factory ('UserFac', function() { return (erste, letzte) { this.name = first + '' + zuletzt; // -^- verwenden, die Objekt, das intern mit diesem Schlüsselwort erstellt wurde }; }); –