繁体   English   中英

使用AngularJS范围对Javascript

[英]Use AngularJS scope to Javascript

尝试在Javascript中访问我的AngularJS作用域变量。 我可以使用{{ gettickeritems.dates }}访问html中的那些值,但是我想在数据/标签中使用它们(而不是当前的{!! $dates !!}

html + Javascript:

<div ng-app="app">
<div ng-controller="gettickersCtrl">

    <div class="row">
      <div class="col-sm-offset-1 col-sm-10">                     
        <div><canvas id="myChart" width="600" height="600"></canvas></div>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.4.0/Chart.min.js"></script>
        <script>
            var ctx = document.getElementById('myChart').getContext('2d');
            var chart = new Chart(ctx, {                            
            type: 'line',                           
            data: {
                labels: {!!  $dates !!} , // <-- How to access gettickeritems.dates here?
                datasets: [{
                    label: 'Amount ' ,
                    data: {!!  $prices !!} 
                }]
            });  
        </script>
      </div>
    </div>

{{ gettickeritems.dates }} <!-- This works -->

</div> <!-- ng-controller -->
</div> <!-- ng-app -->

AngularJS:

var app = angular.module('gettickers',[]);
app.controller('gettickersCtrl', ['$scope', '$http', '$location', function($scope, $http, $location){
var urlapigettickers = $location.protocol() + "://" + $location.host() + "/api/gettickers" ;

$http.get(urlapigettickers).success(function(data, status, headers, config) {
    $scope.gettickeritems = data.gettickers;
}).error(function(data, status, headers, config) {
    console.log("No data found..");
  });
}]);    

您可以通过以下代码使用它,

<script>
            var ctx = document.getElementById('myChart').getContext('2d');
            var chart = new Chart(ctx, {                            
            type: 'line',                           
            data: {
                labels: angular.element(document.querySelector('[ng-controller="gettickersCtrl"]')).scope().gettickeritems.dates ,
                datasets: [{
                    label: 'Amount ' ,
                    data: angular.element(document.querySelector('[ng-controller="gettickersCtrl"]')).scope().gettickeritems.prices 
                }]
            });  
        </script>

您可以通过以下链接了解更多信息: https : //coderwall.com/p/smkwhg/access-scope-outside-of-angularjs

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM