2015-04-23 78 views
0

我需要将我的范围中的某些项添加到某些内联脚本中,这些脚本我需要在我的网站上运行。将AngularJS变量绑定到内联脚本标记

从我在我的演示中尝试过的内容看,使用内联脚本标记中范围内的值看起来不太可能。达到此目的的最佳方法是什么?

<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js"></script> 
 
<div ng-app="app"> 
 
     <div ng-controller="MainCtrl"> 
 
     '{{aaa}}' 
 
     <script>console.log('{{aaa}}');</script> 
 
    </div> 
 
</div> 
 
<script> 
 
'use strict'; 
 
var app = angular.module('app', []); 
 
app.controller('MainCtrl', ['$scope', function ($scope) { 
 
    $scope.aaa = 'bbb'; 
 
}]); 
 
</script>

控制台返回'{{aaa}}'。我希望它返回bbb

+0

如果您运行您的代码段,你会发现输出是'bbb'。检查开发者控制台中的错误。 – Sacho

+0

@Sacho我得到bbb一次,但如果你看看脚本标记内,这也应该返回bbb(在console.log中),而是返回{{aaa}}? – ak85

+0

Angular插入dom元素的属性或内容 - 而不是javascript字符串。如果你想插入一个字符串,使用'$ interpolate'服务。 – Sacho

回答

0

<div id="idd" ng-controller="MainCtrl"> 
     '{{aaa}}' 
     <button ng-click="$log.log(aaa)">log</button> 


    </div> 
</div> 
<script> 
    'use strict'; 
    var app = angular.module('app', []); 
    app.controller('MainCtrl', ['$scope','$log', 
     function($scope, $log) { 
      $scope.aaa = 'bbb'; 
      $scope.$log = $log; 
      //console.log($scope.aaa); 
      //console.log($scope.$parent); 
     } 
    ]); 
</script> 
+0

可能是您尝试此操作将其记录在控制台窗口中。 https://docs.angularjs.org/api/ng/service/$log – Rajiv