Я не могу понять, как создать новый экземпляр на моем заводе. Я создал конструктор в начальной фабрикеКак создать новый экземпляр на заводе
app.factory('Tea',function(){
var Tea = function(name,description,price,caffeine, size) {
this.name = name;
this.description = description;
this.price = price;
this.caffeine = caffeine;
this.size = size;
}
Tea.prototype.toString = function(){
var returnString='' ;
returnString += "name" + this.name + "\n" +
"description: " + this.description + "\n" +
"price: " + this.price + "\n" + "caffeine: " + this.caffeine + "\n" + "size: " + this.size;
return returnString
}
return Tea;
})
В моей следующей фабрике я удостоверился, чтобы ввести чай, так что я мог бы создать новые экземпляры. Я создал объект для хранения моего массива и создал метод, чтобы выдвинуть новые экземпляры
app.factory("DrinkList",function(Tea){
var beverageList = {
drinkLibrary: []
};
beverageList.newItem = function(){
beverageList.drinkLibrary.push(new Tea);
}
console.log(beverageList);
return beverageList;
})
В моем контроллере я сделал обязательно ссылаться как заводами, которые я создал. Однако параметр drinkList.newItem не определен.
app.controller('myController', function($scope,Tea,DrinkList) {
$scope.drinkList = DrinkList.newItem();
console.log(DrinkList.newItem());
});
'DrinkList.newItem()' ничего не возвращает. Можете предложить вам лучше понять, как 'ng-model' автоматически создает свойства объекта для вас, прежде чем слишком увлекаться тем, что вы находитесь на – charlietfl
. Вы также должны прочитать это. Люди говорят, что фабрики/службы в основном такие же, какие они есть, но с тем, что вы пытаетесь сделать, это действительно имеет значение. Я читал об этом. http://tylermcginnis.com/angularjs-factory-vs-service-vs-provider/ – ribsies