Javascript 在Angular.js中访问同一.factory中的方法

Javascript 在Angular.js中访问同一.factory中的方法,javascript,angularjs,Javascript,Angularjs,我运行工厂,并在任何控制器中执行函数“fn_generarPopupConfirm()”。 在这个方法中,我现在创建了一个模板。此模板有一个buton,它有一个ng click,它调用同一工厂内的现有函数。在我的例子中,我有: <button type="submit" class="btn btn-primary" ng-click="fn_confirmar()"> 我需要使用ng click事件直接调用函数“oElim.fn_confirmar()”。有可能吗 这是我的工厂

我运行工厂,并在任何控制器中执行函数“fn_generarPopupConfirm()”。 在这个方法中,我现在创建了一个模板。此模板有一个buton,它有一个ng click,它调用同一工厂内的现有函数。在我的例子中,我有:

<button  type="submit" class="btn btn-primary" ng-click="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;
})
.factory('eliminar',函数($state、$rootScope、$uibModal、popup\u generico){
var oElim={};
oElim.fn_generarPopupConfirm=函数(对象、数组、titulo、contenido){
$rootScope.modalinstance.push($uibModal.open)({
模板:'
好",,
控制器:功能($scope){
$scope.fn_confirmar=函数(){
oElim.fn_confirmar();
}
},
背景:“静态”
}));
}
oElim.fn_confirmar=函数(){
var index=oElim.array.indexOf(oElim.objeto);
oElim.阵列拼接(索引1);
弹出式菜单_generico.fn_CerrarModal();
}
返回oElim;
})

我认为这在angular中是不可能的,因为模板是一个字符串,将在控制器而不是工厂的上下文中插入

controller: function($scope){

    $scope.fn_confirmar=function(){
        oElim.fn_confirmar();
    }
},

如果您确实希望在不将oElim注入控制器的情况下对其工厂具有作用域访问权,则可以将oElim对象直接绑定到$rootScope,从而使您能够在模板
“$rootScope.oElim.fn_confirmar()”
或等效的
“oElim.fn_confirmar()”中对其方法进行原型访问
来自angular应用程序中定义的任何模板。

我认为angular中不可能实现这一点,因为模板是一个字符串,将在控制器的上下文中插入,而不是在工厂中插入

controller: function($scope){

    $scope.fn_confirmar=function(){
        oElim.fn_confirmar();
    }
},

如果您确实希望在不将oElim注入控制器的情况下对其工厂具有作用域访问权,则可以将oElim对象直接绑定到$rootScope,从而使您能够在模板
“$rootScope.oElim.fn_confirmar()”
或等效的
“oElim.fn_confirmar()”中对其方法进行原型访问
来自angular应用程序中定义的任何模板。

我知道这是不可能的,但您可以执行以下操作:

控制器:功能($scope){
$scope.fn_confirmar=oElim.fn_confirmar;

},
我知道这是不可能的,但您可以执行以下操作:

控制器:功能($scope){
$scope.fn_confirmar=oElim.fn_confirmar;

},
我很惊讶代码不起作用。你收到了什么错误信息?我很惊讶代码不起作用。您收到了什么错误消息?