Я недавно прочитал Angular Style Guide, и я до сих пор удивляюсь, что есть хорошие методы для создания экземпляра объекта, как это:Каков правильный способ создания объекта в угловом заводе?
Tracker = function(data){
key: data.key,
name: data.name,
buckets: data.buckets,
enable: data.enable || false,
geoip: data.geoip || false
}
Мои цели является соблюдение Principe развязки. Я не хочу, чтобы в моем контроллере был new Tracker()
.
Основываясь на Angular Style Guide, я использую фабрику для развязки моего контроллера из класса Tracker. Вот моя фабрика.
angular
.module('ranger')
.factory('factoryTracker', factoryTracker);
factoryTracker.$inject = ['$anyInjetable'];
function factoryTracker($anyInjetable) {
var factory = {
instantiate: instantiate
};
return factory;
///////////
function instantiate(data){
return {
//Properties
key: data.key,
name: data.name,
buckets: data.buckets,
enable: data.enable || false,
geoip: data.geoip || false
//Methods
helloWorld: helloWorld
};
}
function helloWorld(){
return "I come in peace";
}
}
В моем контроллере я использую его с:
factoryTracker.instantiate({
key: tracker._id,
name: tracker.name,
enable: false
});
Моей проблема заключается в пути моего объекта Tracker объявлено:
на самом деле не объявлен, мы видим только осуществление
нелегко читать
реализованы методы вне замыкания объекта ...
Самое главное: если я хочу, чтобы переключить класс экземпляр, так что я не хочу, чтобы написать его на заводе.
Я пришел к этому относительно нескольких источников использования фабрик и для размещения моделей. Но я пока не в порядке с моим кодом.
Рекомендации:
Ну вы также можете на это сообщение https://medium.com/opinionated-angularjs/angular-model-objects-with-javascript-classes-2e6a067c73bc – Chandermani
Полезная Ressource, спасибо вам большое. – dagatsoin