javascript - 获取一个 Angular 工厂来引用它自己的数据

标签 javascript angularjs angularjs-scope angular-factory

我正在使用 Angular 工厂进行一些工作,在一个实例中,我希望工厂引用它自己的一些数据,但它似乎不起作用。在下面的示例中,data2 需要从 testVariable 读取值,但它似乎不起作用。在下面的示例中,数据只是空的。在我更复杂的场景中,我使用该值作为 bool 值来显示/隐藏值并收到错误“无法获取未定义或空引用的属性'xxxxxx'”。有谁知道我如何根据下面的需要成功引用 testVariable 。需要注意的一件事是,它需要在工厂内部返回,因为设置了一个 $watch 来在值发生变化时执行一些操作。

谢谢。

(function() {
angular.module('myApp.Module').factory(
    'MyFactory',
    function() {  

var factory = {
                    testVariable : 'testData2',
                    randomData : [
                        {
                            data1: 'testData1',
                            data2:  testVariable,
                            data3: 'testData3'
                        }, {
                            data4 : 'testData4',
                            data5 : 'testData5',
                            data6 : 'testData6',
                        }
            }

              return factory;
   });
}());

最佳答案

就像您所做的那样,testVariable 是一个对象属性,而不是变量!您需要在 factory 对象外部定义变量。

(function() {
angular.module('myApp.Module').factory('MyFactory',function() {

var testVariable = 'testData2';  

var factory = {
                    randomData : [
                        {
                            data1: 'testData1',
                            data2:  testVariable,
                            data3: 'testData3'
                        }, {
                            data4 : 'testData4',
                            data5 : 'testData5',
                            data6 : 'testData6',
                        }
            }

   return factory;
   });
}());

关于javascript - 获取一个 Angular 工厂来引用它自己的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48167231/

相关文章:

javascript - 如何在 AngularJS 中追踪 $watch 模型更新的来源?

javascript - 查找特定标签 a

javascript - 需要从头开始使用 HTML/CSS 和 Javascript 制作计算器

javascript - angular js href在url开头添加不安全

javascript - Angular 缓存或加载 http 请求的正确方法

javascript - 如何在工厂服务中定义的ng-click中调用函数

javascript - 防止 $scope 变量副本监听其原始内容

javascript - 如何使用 jquery 销毁动态创建的 DOM 元素?

javascript - 我如何在javascript中创建一个搜索栏

javascript - AngularJS - 将属性传递给指令的问题 - 为每个属性接收未定义的值