将角度范围传递给jquery

时间:2016-10-26 06:32:23

标签: javascript php jquery angularjs

任何人都有像我这样的案子吗?我必须将另一项服务连接到我的系统。问题是JS前端不支持服务(即使用angularJS)。显示服务形式我需要完成这样的jQuery表单:

<script type="text/javascript">
$(function() {
var data = new Object();
data.req_merchant_code = '1';
data.req_chain_merchant = 'NA';
data.req_payment_channel = '15'; // ‘15’ = credit card
data.req_transaction_id = '<?php echo $invoice ?>';
data.req_currency = '<?php echo $currency ?>';
data.req_amount = '<?php echo $amount ?>';
data.req_words = '<?php echo $words ?>';
data.req_form_type = 'full';
getForm(data);
});
</script>

就像你看到带有echo的那个PHP变量一样,任何人都可以帮助我将范围变量传递给那个jQuery。我设置了这个变量

$scope.dokuPayment = function(){
            topUpFactory.createwordsDoku().then(function(data){
            console.log(data.data);
            var req = data.data;
            $scope.invoice = req.invoice;
            $scope.words = req.words;
            $scope.currency = req.currency;
            $scope.amount = req.amount;
            console.log(invoice);
            $("#doku-modal").modal('show');
            });
        }

我尝试将该范围放到像这样的参数

<script type="text/javascript">
      console.log("form doku");

      $(function() {
      var data = new Object();
      data.req_merchant_code = '3279';
      data.req_chain_merchant = 'NA';
      data.req_payment_channel = '15'; // ‘15’ = credit card
      data.req_transaction_id = {{invoice}};
      data.req_currency = {{currency}};
      data.req_amount = {{amount}};
      data.req_words = {{words}};
      data.req_form_type = 'full';
      getForm(data);
      });

      </script>

但不起作用..我尝试设置upperstroup(“”)仍然无法正常工作。谁都可以帮忙。 。感谢

2 个答案:

答案 0 :(得分:0)

使用AngularJS时,请尝试避免以这种方式使用jQuery。

$(&#34;#铜工模态&#34)。模态(&#39;显示&#39); - 在这个框架中做这件事并不是一个好主意。

本文可能会提供一些指导:http://www.dwmkerr.com/the-only-angularjs-modal-service-youll-ever-need/

在$ scope.dokuPayment中,只要不直接操作DOM,你就可以执行getForm(data)所做的事情。

因此,您不必将任何数据传递给视图,因为整个JS逻辑应该位于Angular服务或控制器中。

答案 1 :(得分:0)

有简单的黑客,不确定它是否是好的做法!您可以使用 $ window 范围。 您需要做的就是使用 $ window。{变量名称} 为全局变量创建角度变量,并使用窗口从外部访问它们。{变量名称}

见这里:

$scope.dokuPayment = function(){
            topUpFactory.createwordsDoku().then(function(data){
            console.log(data.data);
            var req = data.data;
            $window.invoice = req.invoice;
            $window.words = req.words;
            $window.currency = req.currency;
            $window.amount = req.amount;
            console.log(invoice);
            $("#doku-modal").modal('show');
            });
        }

AngularJS之外:

console.log("form doku");
  $(function() {
  var data = new Object();
  data.req_merchant_code = '3279';
  data.req_chain_merchant = 'NA';
  data.req_payment_channel = '15'; // ‘15’ = credit card
  data.req_transaction_id = window.invoice;
  data.req_currency = window.currency;
  data.req_amount = window.amount;
  data.req_words = window.words;
  data.req_form_type = 'full';
  getForm(data);
  });

这对我有用。希望这会有所帮助:)