【问题标题】:Variable capture a button and pass it to a service in angular变量捕获一个按钮并以角度将其传递给服务
【发布时间】:2016-02-07 21:20:59
【问题描述】:

社区您好,我正在使用 Angular 进行项目,但遇到以下问题:

我想捕获按钮内部的值,该值来自控制器,然后单击以将此值传递给服务,并且该服务应转到另一个控制器:

HTML

<div ng-app="myApp">

  <div ng-controller="capturaCtrl">
  <!--capturar valor en 'algunaVariable' con ng-click o ng-model se me ocurre para pasarla al service captura -->
   CODIGO A CAPTURAR: <button>{{capturame}}</button>
  </div>

  <br>

  <div ng-controller="recibeCtrl">
   CODIGO CAPTURADO: 
    {{codigo}}
  </div>

JS

    var app =  angular.module('myApp',[]);

  app.factory('captura',  function(){
    var  codigo = algunaVariable; // <== variable que reciba del controllar capturaCtrl
    return{
      getCodes: function(){
        return codigo;
      }
    }
  });

  app.controller('capturaCtrl', ['$scope', 'captura', function($scope, captura){
    $scope.capturame = '1111';

  }]);


  app.controller('recibeCtrl', ['$scope', 'captura', function($scope, captura){
    $scope.codigo = captura.getCodes();

  }]);

在这里我给你我的代码:https://jsfiddle.net/alx_lopz/wgfh3dLa/5/

【问题讨论】:

  • 使用 AngularJS 服务在控制器 AngularJS Service 之间共享数据。我做了一个适合你的例子:Example

标签: javascript angularjs button service controller


【解决方案1】:

为你的工厂添加一个 setter 函数。

  app.factory('captura',  function(){
    var  codigo = "initial value"; // <== variable que reciba del controllar capturaCtrl
    return{
      getCodes: function(){
        return codigo;
      },
      setCodes: function(value) {
        codigo = value;
        return value;
      }
    }
  });

ng-click 添加到您的按钮

CODIGO A CAPTURAR: <button ng-click="setCodigo(capturame)">
                       {{capturame}}
                   </button>

将检索转换为函数

CODIGO CAPTURADO: {{ codigo() }}

把函数放在作用域上

  app.controller('capturaCtrl', ['$scope', 'captura', function($scope, captura){
    $scope.capturame = '1111';
    $scope.setCodigo = captura.setCodes;

  }]);

  app.controller('recibeCtrl', ['$scope', 'captura', function($scope, captura){
    $scope.codigo = captura.getCodes;

  }]);

DEMO on JSFiddle

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-15
    • 2016-01-03
    • 2022-12-14
    • 2019-04-07
    • 2014-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多