2015-04-23 55 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