gpt4 book ai didi

javascript - Angularjs 保留局部变量

转载 作者:行者123 更新时间:2023-11-29 17:53:16 24 4
gpt4 key购买 nike

我有一个这样的工厂:

TestFactory= function () {
var objectName=null;

return {
SetName:function(name) {
objectName = name;
},
GetName:function() {
return objectName;
},
Init:function() {
return angular.copy(this);
}
}
}

Controller 如:

TestController = function($scope) {
$scope.TestClick = function () {

var tstA = TestFactory.Init();
var tstB = TestFactory.Init();

tstA.SetName('test A')
tstB.SetName('test B')

console.log('A', tstA.GetName());
console.log('B', tstB.GetName());

}
}

在控制台中,我得到了两个对象的 Test B

如何创建该对象的正确实例?

我想在工厂的其他功能中使用 objectName 值。

最佳答案

考虑到在 Angular 中,工厂是单例的,所以实例总是相同的。

您可以执行以下操作:

TestFactory= function () {
var objectName={};

return {
SetName:function(property,name) {
objectName[property] = name;
},
GetName:function(property) {
return objectName[property];
},
Clear:function(property) {
delete objectName[property]
}
}
}

然后在你的 Controller 中:

TestController = function($scope, TestFactory) {
$scope.TestClick = function () {

TestFactory.SetName('a','test A')
TestFactory.SetName('b','test B')

console.log('A', TestFactory.GetName('a')); // test A
console.log('B', TestFactory.GetName('b')); // test B

}
}

关于javascript - Angularjs 保留局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41384151/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com