将Angular范围值传递给JavaScript变量

时间:2018-05-06 17:02:00

标签: javascript angularjs

我在SO中检查了现有的类似问题,但我认为它有点不同。我知道我们不需要使用JavaScript和Angular。但是由于一些依赖性,我正在使用它。

var ProfileApp = angular.module('ProfileApp', []);
     ProfileApp.controller('getprofile', function($scope,$http,$location){
   $scope.searchok = 1; 

   $scope.tn_id = '5';
-- Some Angular Codes are here ---

我想将 $ scope.tn_id 值添加到JavaScript变量中。我试着喜欢这个。

<script type="text/javascript">
      var tn_id_from_angular;

</script>

在Angular代码之前定义变量。在Angular代码中添加了以下代码。

   tn_id_from_angular = $scope.tn_id;
alert (tn_id_from_angular);

当我运行代码时,我收到警告框,但它没有显示值并且给我错误未定义。

修改

简单来说,我想将 $ scope.tn_id 值分配给javascript变量 tn_id_from_angular

1 个答案:

答案 0 :(得分:1)

您可以将全局变量分配给window对象,然后将其检索

警告:这是一个hacky领域..我们这里没有制作好的代码,但它可能有效

在你的角度代码中尝试这个:

// ...

var ProfileApp = angular.module('ProfileApp', []);
ProfileApp.controller('getprofile', function($scope,$http,$location){
  $scope.searchok = 1;
  $scope.tn_id = '5';
  window.hacks = {tn_id_from_angular: $scope.tn_id};

// ...

然后在你的脚本中:

const {tn_id_from_angular} = window.hacks;
alert (tn_id_from_angular);

只要脚本在角度代码之后执行 - 它应该可以正常工作

如果它没有,那么你需要找出某种&#34;角度准备好的回调&#34;