我运行工厂,并在任何控制器中执行“ fn_generarPopupConfirm()”功能。在这种方法中,我现在创建了一个模板。该模板具有一个带ng单击的按钮,该按钮会调用同一工厂内的现有函数。在我的示例中,我有:<button type="submit" class="btn btn-primary" ng-click="fn_confirmar()">如何调用它(“ oElim.fn_confirmar()”)?而无需定义在其中定义$ scope对象的函数来调用所需的函数。此功能存在于同一工厂。controller: function($scope){ $scope.fn_confirmar=function(){ oElim.fn_confirmar(); }},我需要使用ng-click事件直接调用该函数“ oElim.fn_confirmar()”。这是可能的?这是我的工厂。.factory('eliminar', function($state,$rootScope,$uibModal,popup_generico) { var oElim= {}; oElim.fn_generarPopupConfirm = function(objeto,array,titulo,contenido) { $rootScope.modalInstances.push($uibModal.open({ template: '<form id="form_popup" class="form-horizontal"><div class="modal-header"> <h3 class="modal-title"><button type="submit" class="btn btn-primary" ng-click="fn_confirmar()"> OK</button></div></form>', controller: function($scope){ $scope.fn_confirmar=function(){ oElim.fn_confirmar(); } }, backdrop: 'static' }));} oElim.fn_confirmar = function(){ var index = oElim.array.indexOf(oElim.objeto); oElim.array.splice(index, 1); popup_generico.fn_CerrarModal(); } return oElim;}) 最佳答案 我不相信在角度范围内是可能的,因为模板是将在控制器而不是工厂的上下文中插入的字符串。如果您确实希望对oElim工厂进行范围访问而不将其注入到控制器中,则可以将oElim对象直接绑定到$ rootScope,从而使原型访问模板"$rootScope.oElim.fn_confirmar()"中的原型方法或等效地仅从您在角度应用程序中定义的任何模板。关于javascript - 在Angular.js中访问同一.factory中的方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42407094/
10-11 20:35