javascript - 访问 Angular.js 中同一 .factory 中的方法

标签 javascript angularjs

我运行工厂,并在任何 Controller 中执行函数“fn_generarPopupConfirm()”。 在这个方法中,我现在创建了一个模板。该模板有一个带有 ng-click 的按钮,它调用同一工厂内的现有函数。在我的例子中,我有这个:

<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;
})

最佳答案

我不认为这在 Angular 内是可能的,因为模板是一个字符串,将在 Controller 而不是工厂的上下文中进行插值。

如果您确实希望在不将 oElim 工厂注入(inject)到 Controller 的情况下对其进行范围访问,则可以将 oElim 对象直接绑定(bind)到 $rootScope,从而使您可以在模板 "$rootScope.oElim.fn_confirmar()" 或等效的 "oElim.fn_confirmar()" 来自您在 Angular 应用程序中定义的任何模板。

关于javascript - 访问 Angular.js 中同一 .factory 中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42407094/

相关文章:

javascript - POST 上的 CORS angular js + restEasy

javascript - 将事件附加到 Angular2 中的新元素

javascript - 使用 ng-repeat 后专注于特定行

javascript - 将 angularjs 应用程序嵌入另一个 angularjs 应用程序

javascript - 将 URL 与 json 值组合

javascript - jquery/ajax 表单提交不起作用

javascript - c# 等待 javascript 事件完成

javascript - 奇怪的使用 Date 对象

javascript - 如何在 AngularJS 中设置登录页面

javascript - 检查值是否为空