gpt4 book ai didi

javascript - 工厂angularjs中的访问 Controller 范围功能

转载 作者:行者123 更新时间:2023-11-29 19:09:35 25 4
gpt4 key购买 nike

我有一个 Controller ,以及一个使用 Controller 功能的工厂。我这样做的原因是因为我想在更多 Controller 中使用一些功能,具体取决于实际的 $scope我的解决方案类似于下面的代码。然而,angular 抛出一个错误说 controllerFunction is undefined

编辑:此代码有效!我在代码的其他地方打错了字。

angular.module('myApp')
.controller('myController', function ($scope, $http, myInterface) {
var myFactory = new myInterface($scope);
$scope.controllerFunction = function(){
// do something
}
})
.factory('myInterface', function(){
var self;
function Interface($scope) {
this.$scope = $scope;
self = this;
}

Interface.prototype.interfaceFunction = function(){
self.$scope.controllerFunction();
}
return Interface;
});

最佳答案

您需要将回调方法从 Controller 传递给您的工厂方法。

angular.module('myApp')
.controller('myController', function ($scope, $http, myInterface) {
myInterface.myMethod(function (){// callback method passed to factory
$scope.controllerFunction();//will get called from factory via callback
)}
$scope.controllerFunction = function(){
// do something
}
})
.factory('myInterface', function(){
var myMethod = function (cb) {
//your code
cb(); //calling callback method of controller
}

return myMethod;

});

关于javascript - 工厂angularjs中的访问 Controller 范围功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40194789/

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