Используйте область видимости AngularJS для Javascript - PullRequest
0 голосов
/ 10 мая 2018

Попытка получить доступ к моей переменной области видимости AngularJS в Javascript.Я могу получить доступ к этим значениям в html с помощью {{ gettickeritems.dates }}, но я бы хотел использовать его в данных / метках (вместо текущих {!! $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..");
  });
}]);    

1 Ответ

0 голосов
/ 10 мая 2018

Вы можете использовать его по приведенному ниже коду,

<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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...