0
我無法弄清楚如何在工廠中創建新實例。我在最初的工廠創建了一個構造函數如何在工廠中創建新實例
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