我想創建一個工廠的新實例,但是,它總是打印最後一個實例(因爲它的單例)。 我每次用new
關鍵字創建新實例時如何獲得新實例? 我在jsfiddle.net中創建了一個我想要實現的例子 謝謝。角廠。如何創建工廠的新實例?
angular.module('mainModule', []);
Crud.$inject = ['$http'];
function Crud($http) {
function CrudFactory(crudDTO) {
var vm = CrudFactory;
vm.x = 1;
vm.addX = addX;
vm.getX = getX;
vm.print = print;
function addX(){
vm.x +=1;
}
function getX(){
return vm.x;
}
function print(){
console.log(crudDTO.entity);
}
return vm;
}
return CrudFactory;
}
angular
.module('mainModule')
.factory('Crud', Crud);
angular.module('mainModule').controller('mainCtrl', function($scope,Crud){
var a = new Crud({entity:"test1"});
var b = new Crud({entity:"test2"});
//a.addX();
//$scope.a =b.getX();
a.print();
b.print();
a.print();
});
更改虛擬機將該 – Vivz
[非單S的可能的複製在Angular中的服務](https://stackoverflow.com/questions/16626075/non-singleton-services-in-angular) – Mistalis
vm應該在控制器中使用;對於我在工廠中使用它沒有任何意義(我們將view/tpl和model綁定在控制器中)。 –