我可以在该服务中动态创建的嵌套对象中设置该服务的 this.'something' 吗? (可能是范围问题)

2023-12-20

我有以下服务(它实际上有更多级别和元素,但我将其精简为我想要工作的一个示例)。它根据 app.data 文件夹中的 csv 文件动态地在其他对象中创建 javascript 对象。与这个问题最相关的行是this.images = images;在最里面的 for 循环之后。

app.service('tabInfoService',function(csvService, tabsService ){


    var tabData = tabsService.tabData;
    var tabCount = tabsService.tabCount;
    this.tabs={};
    this.images={};

    var tCounter = 0;
    //for loop creates a big object literal with more object literals inside of it 
    for (tCounter=0; tCounter<tabCount; tCounter++){
        var tabImageURL = "Contents/Product Groups/"+tabData[tCounter]+"/imageOrder.csv";
        var TabImages = $.getCsvArray(tabImageURL); //gets array from csv file
        var images={};

        this.tabs["tab"+tCounter] ={
            title: tabData[tCounter],  

            images : (function(){
                                        for (imageCounter = 0; imageCounter<TabImages.length; imageCounter++)                                                   
                                        images["image"+imageCounter]    ={
                                            image: "Contents/Product Groups/"+tabData[tCounter]+"/img/"+TabImages[imageCounter]

                                        };
                                        this.images=images; //can I make something like this so that I'll have access in my controller?
                                        return images;
                            })(),

        }
    }   
});

我怎样才能做出类似的东西this.images = images;在嵌套的 javascript 对象内部工作,以便我可以使用类似的内容在控制器中访问此图像对象$scope.images = tabInfoService.images ?

目前我可以做$scope.navItems = tabInfoService.tabs在我的控制器中并可以访问整个大对象。这让我可以筑巢ng-repeatdiv(重复导航项中的某些内容,然后重复该内容中的其他内容)以便重复此内容的所有元素images object.

所以基本上,我可以访问tabInfoService.tabs对象并深入研究它以通过在 HTML 中嵌套 ng-repeats 来获取我想要的图像。该应用程序可以正常工作,但我在初始化控制器中的数据时遇到问题。我可以设置一个新的吗this.something(在这种情况下this.images) for tabInfoService所以我可以为其设置一个 $scope 变量?

长话短说: 我想要做$scope.initialImage=tabInfoService.images[image0]但我无法设置tabInfoService.images在我的服务的嵌套对象内。有办法做到这一点吗?

我应该将这一切移至控制器吗?

非常感谢您的宝贵时间。对此,我真的非常感激。


您需要制作该对象的深层副本。一种选择是使用angular.copy https://docs.angularjs.org/api/ng/function/angular.copy.

angular.copy(images, this.images);

示例 plnkr http://plnkr.co/edit/1RubZT8hn1WVgaC5ZfQI?p=preview- 参见第 36 行和第 37 行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以在该服务中动态创建的嵌套对象中设置该服务的 this.'something' 吗? (可能是范围问题) 的相关文章

随机推荐

  • jquery 查找所有精确的 td 匹配

    servertable td eq server 这仅找到 1 个 我认为是第一个 匹配项 如何找到所有匹配项 顺便提一句 td contains 对我不起作用 eq期望数字索引仅返回一行 如果你想通过 td 的内容来匹配它 你必须使用 包
  • HBase 中类似 SQL LIMIT 的命令

    HBase 有没有类似的命令SQL LIMIT query 我可以这样做setStart and setEnd 但我不想迭代所有行 在 HBase shell 中 您可以使用 LIMIT hbase gt scan test table L
  • iPhone - 无法在 iOS 5.0.1 设备上从 XCode 运行应用程序,因为 iOS 从 5.0 更新

    我刚刚将 iPhone 更新到 iOS 5 0 1 XCode 不再将其识别为运行应用程序的有效设备 我已经去找组织者 将设备重置为开发设备 更新了我的组件和库 但仍然没有任何结果 该设备没有出现在主窗口弹出窗口的可用目的地中 我该如何在设
  • 我的免费送货是在加税后计算的

    我尝试设置 50 美元免运费 但当我添加总计达到 47 00 美元的产品时 税费将被取消并允许免运费 我不敢相信这是标准的 所以我一定有什么设置错误 我在联邦快递 FedEx 和美国邮政 USPS 承运商下设置了免费送货服务 我在配置 销售
  • Spring Boot IMAP 通道适配器在处理大量入站电子邮件时丢失电子邮件

    我有一个正在运行的 Spring boot 应用程序 它正在处理来自专用邮箱的电子邮件 当电子邮件数量有限时 在测试环境中一切都运行良好 在生产环境中 这些电子邮件是由计划作业生成的 有时一批中会有超过 10000 封电子邮件 每封电子邮件
  • 使用 Yii 下载文件

    我正在使用 Yii 框架 并且我有网站允许管理员上传文本文件或 pdf 现在我想允许用户单击链接并开始下载该文件 这在 Yii 框架内是如何实现的 我将文件存储在 Yiiapplication uploads downloads test
  • 会话变量在本地服务器上有效,但在托管服务器上无效

    我正在开发一个简单的 php mysql 讨论论坛 该声明 在我的本地计算机上产生了所需的结果 但是当我上传代码以实时测试论坛时 会话变量的值不再显示 可能是什么原因造成的 可能导致这种情况的一件事是 如果实时 Web 服务器位于使用默认
  • Django:用户登录时发出信号?

    在我的 Django 应用程序中 我需要在用户登录时开始运行一些定期后台作业 并在用户注销时停止运行它们 因此我正在寻找一种优雅的方法来 收到用户登录 注销的通知 查询用户登录状态 从我的角度来看 理想的解决方案是 每个发送的信号djang
  • Python - 找到两个图的所有交点

    我试图找到两个图的所有交点并将它们显示在最终的绘图上 我环顾四周并尝试了多种方法 但一直无法获得我想要的东西 目前 我尝试生成一个列表 其中将列出交点 但我不断收到以下错误 具有多个元素的数组的真值是不明确的 使用a any or a al
  • x64 上的 WMI 链接器错误

    我正在尝试使用 msdn 中的 WMI 示例 http msdn microsoft com en us library windows desktop aa384724 28v vs 85 29 aspx http msdn micros
  • 访问联合类型中的属性

    请考虑下面的简单联合类型示例 interface Alarm alarmText string quali number interface Car speed number type unionT Alarm Car var alarm
  • 使用迭代最近点 (ICP) 时如何在点云库 (PCL) 中标记 NULL 数据

    我正在尝试使用以下方法对齐 2 组点云迭代最近点 ICP 算法集成在点云库 PCL 我收到错误报告 指出找不到足够的对应点 我已经放宽了参数的条件 setEuclideanFitnessEpsilon 1 797e 5 setMaximum
  • 使用 CostModel 获取 LLVM IR 的 cpu 周期

    从LLVM 3 0开始 Analyse目录下有CostModel cpp 参考它的文档 它说 该文件定义了成本模型分析 它为 LLVM IR 提供了非常基本的成本估算 此分析使用代码生成器的服务来估算任何 IR 指令降低为机器指令时的成本
  • 对 System.Windows.Forms 的引用

    我正在使用 C 在 Excel 中执行某些命令 但是当我键入时 using System Windows Forms Visual Studio 无法识别它 当我添加引用时 出现此错误消息 无法添加对 System Windows Form
  • 地图初始化后是否可以更改 Google 地图样式?

    我了解如何使用自定义样式初始化地图 如下所示 var styles featureType water stylers visibility on color ffffff var mapOptions zoom 13 maxZoom 15
  • 如何在控件模板中的WPF中应用ListView列的MinWidth?

    继类似问题的回答之后here https stackoverflow com questions 852872 minwidth for listview column in wpf 我能够在 XAML 页面上设置 MinWidth 我想要
  • ncurses:为什么RGB颜色值范围是0 - 1000?

    对于 RGB 三元组中的每个值 RGB 颜色值范围为 0 255 为什么 ncurses 为 RGB 三元组中的每个值设置范围 0 1000 是否有一种简单的方法可以将 0 255 范围转换为 0 1000 范围 使颜色保持在 0 255
  • JIT 如何在运行时替换优化的机器代码?

    我正在浏览 OpenJDK 源代码 但找不到替换优化代码的地方 我想知道如何在保护模式下完成此操作 这不是操作系统应该阻止的某种自我修改代码吗 JITer 在堆或堆栈中分配空间 并将汇编代码插入其中 不 自我修改代码完全没问题 Virtua
  • 为什么过剩如此严重?

    尽管 openFrameworks 使用了 GLUT 但我看到了很多关于 GLUT 的不好的评论 Cinder 开发人员表示 他们希望尽可能远离 GLUT 那么它有什么不好呢 你永远不应该使用actual过剩 自 2001 年左右以来 它就
  • 我可以在该服务中动态创建的嵌套对象中设置该服务的 this.'something' 吗? (可能是范围问题)

    我有以下服务 它实际上有更多级别和元素 但我将其精简为我想要工作的一个示例 它根据 app data 文件夹中的 csv 文件动态地在其他对象中创建 javascript 对象 与这个问题最相关的行是this images images 在