gpt4 book ai didi

javascript - 访问 Angular 工厂中的嵌套函数闭包

转载 作者:行者123 更新时间:2023-12-02 16:05:24 25 4
gpt4 key购买 nike

我正在尝试访问工厂内的嵌套函数,该函数已注入(inject)到 AngularJS 中的 Controller 中,但只是收到“函数未定义”错误。我认为 Controller 甚至无法访问内部功能。为什么?这是合法的 JavaScript 吗?

服务

(function () {
'use strict';

angular
.module('myModule', [])
.factory('myFactory', myFactory);

function myFactory() {
var outerVar = 0;

function foobar() {
var innerVar;

function foo() {
innerVar = outerVar++;
console.log(innerVar);
}

function bar() {
innerVar = outerVar--;
console.log(innerVar);
}

return {
foo: foo,
bar: bar
}
}

return {
foobar: foobar
}
}
}());

Controller

(function () {
'use strict';

angular
.module('myModule')
.controller('myController', myController);

function myController(myFactory) {

myFactory.foobar.foo();
}
}());

最佳答案

你必须调用foobar函数,然后它会返回所需的对象

(function () {
'use strict';

angular
.module('myModule')
.controller('myController', myController);

function myController(myFactory) {

myFactory.foobar().foo();
}
}());

关于javascript - 访问 Angular 工厂中的嵌套函数闭包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30803500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com