如何确保正确更新和引用全局javascript对象?
我正在开发一个项目,其中我要求用初始值实例化一个全局对象,通过Angular服务进行更新,然后用更新后的值从其本机文件中再次引用 理想的工作流程如下所示:如何确保正确更新和引用全局javascript对象?,javascript,angular,singleton,global-object,Javascript,Angular,Singleton,Global Object,我正在开发一个项目,其中我要求用初始值实例化一个全局对象,通过Angular服务进行更新,然后用更新后的值从其本机文件中再次引用 理想的工作流程如下所示: 用户输入输入并引发事件 服务对事件作出反应,并相应地更改全局对象值 用户导致事件更新信息 更新事件调用函数 函数引用具有更新值的全局对象,并相应地提交更改 当前,服务会适当地调用全局函数并注销对象,以确认值已更改。但是,当我尝试从更新后的对象的本机文件中引用该对象时,控制台将注销该对象,而不使用其新值 我尝试过使用简化js文件和Angular
window.addEventListener('load',function(){
函数准备外部Linterface(应用程序){
//在app.ExternalInterface中注册函数以从拼图中调用它们
app.ExternalInterface.updateModel=函数(){
日志(“正在尝试更新模型:”)
console.dir(window.nexus)
let resizeModel=函数(高度、宽度、深度){
拼图。程序。大小模型(高度、宽度、深度)
}
resizeModel(nexus.HeightShapeActor、nexus.WidthShapeActor、nexus.DepthShapeActor);
let displayCurrentDoor=功能(门){
v3d。拼图。程序。显示当前门(门)
}
显示currentDoor(nexus.currentDoor);
让displayPrintPocket=功能(选定){
如果(选中){v3d.puzzles.procedures.showPrintPocket()}否则{v3d.puzzles.procedures.hidePrintPocket()}
}
displayPrintPocket(nexus.drawingPocket);
让DisplayRainshild=函数(已选定){
如果(选中){v3d.puzzles.procedures.showRainSheild()}否则{v3d.puzzles.procedures.hideRainSheild()}
}
显示rainshild(nexus.rainshild);
}
}
您需要使用REDUX或类似的数据存储。备选方案:Vue.js找到了一种跳过此问题的方法。它可以帮助您查看它们的操作。其他选项:使用Vue.util.extend(google it)等函数更新现有的主对象。