javascript - Angular 工厂未设置

标签 javascript angularjs

正如您所看到的(如下),我有一个工厂提供程序,我将其注入(inject)到另一个工厂中。在那里,我尝试设置 infoPMIDs 上的值之一。这是行不通的。不知何故,当我在 Controller 中调用 infoPMIDs 时,它仍然具有值 a = '', b = '', c = ''

summariesApp.factory('infoPMIDs', [function () {
    var a = '', b = '',
        c = '';
    return {
        a: a,
        b: b,
        c: c
    }
}]);

summariesApp.factory('getPMIDs', ['infoPMIDs', function (infoPMIDs) {
    return function (Tab, other, drug) {
        var value = ['value1', 'value2'];
        infoPMIDs.genePhenotype = value;
    }    
}]);

提前致谢。

最佳答案

如果您想更新 infoPMID 中的 a、b、c,那么您必须公开一些功能才能执行此操作:

.factory('infoPMIDs', [function () {
    var a = '', b = '', c = '';
    return {
        a: a,
        b: b,
        c: c,
        setA: function(val){
            a = val;
        },
        setB: function(val){
            b = val;
        },
        setC: function(val){
            c = val;
        },
    }
}]);

或者类似的东西

关于javascript - Angular 工厂未设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29901372/

相关文章:

javascript - 基本 ionic 路由问题

javascript - 如何从json中识别和提取 boolean 、整数等数据

javascript - node.js 和 express 中的异常处理

javascript - 带有传递参数的 Angular Promise 链接

javascript - 如何将外部作用域变量传递给 foreach 函数

javascript - javascript 中 AngularJS 的缩写

javascript - 带循环克隆的 Angular Owl 旋转木马超出范围

javascript - 如果 value 为 null,如何正确跳过 setValue

javascript - 当 HTML 页面中有 BASE 标签时,SVG 渐变变黑?

angularjs - 如何通过 Jasmine 在 Angular 测试中避免 location.reload() 并对其进行测试