【问题标题】:getting an angular Factory to reference it own data让一个角度工厂引用它自己的数据
【发布时间】:2018-01-09 11:30:29
【问题描述】:

我正在使用角度工厂进行一些工作,在一种情况下,我希望工厂引用它自己的一些数据,但它似乎不起作用。在下面的示例中,data2 需要从 testVariable 读取值,但它似乎不起作用。在下面的示例中,数据只是空的。在我更复杂的场景中,我使用该值作为布尔值来显示/隐藏一个值并得到错误“无法获取未定义或空引用的属性 '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;
   });
}());

【问题讨论】:

    标签: javascript angularjs angularjs-scope angular-factory


    【解决方案1】:

    就像你做的那样,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;
       });
    }());
    

    【讨论】:

      猜你喜欢
      • 2019-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-13
      相关资源
      最近更新 更多