Не могу вызвать функцию angularjs с помощью ng-init - PullRequest
0 голосов
/ 02 июля 2019

У меня есть холст на моей html-странице. Я пытаюсь вызвать функцию из моего контроллера angularjs по умолчанию, когда холст загружается на html-странице. Я могу сделать это с помощью функции windowng.onload. Но я не могу передать какой-либо параметр через этот путь. Я попробовал ng-init. Но я получаю сообщение об ошибке. Если я пытаюсь использовать ng-mouseover, то это работает. Если я удерживаю мышь над канвой. Но я хочу вызвать эту функцию без какого-либо взаимодействия с пользователем. Просто перезагрузив страницу. Я новичок в angularjs. Есть ли способ, которым я могу это сделать? Спасибо.

HTML часть

<body >

    <div ng-app="demo" ng-controller="testCtrl"  >

      <div class="flex-control-nav" >
        <div>
          <canvas ng-style="mybody" id="myCanvas" ng-init=init('myCanvas')  style="border:1px solid #d3d3d3;">
          Your browser does not support the HTML5 canvas tag.

          </canvas>
      </div>
     </div>
</div>

angularjs часть

var app = angular.module("demo", []);
        app.controller("testCtrl", function($scope,$http,$window) {
           $scope.temp = "";
           $scope.rows = []; // init empty array
           $scope.datainput =[];
           $scope.dataconfig =[];

            $http({
                method: 'GET',
                url: 'http://localhost:5000/database'
            }).then(function (data){
            },function (error){
            console.log("big error");
            });



            $http({
                method: 'GET',
                url: 'Data/input.json'
            }).then(function (data){
            $scope.datainput=data.data;
            console.log($scope.datainput);
            },function (error){
            console.log("big err");
            });


            $http({
                method: 'GET',
                url: 'Data/config.json'
            }).then(function (config){
            $scope.dataconfig=config.data;
            //console.log($scope.datainput);
            },function (error){
            console.log("config error");
            });






            $scope.refresh = function(){
                location.reload();


            }


            $scope.init = function(canvasid) {
               var json=JSON.parse(JSON.stringify($scope.datainput));

               var jsonconfig=JSON.parse(JSON.stringify($scope.dataconfig));
                var n = $scope.givenNumber;

                var cheight=jsonconfig[3].value;
                var cwidth=jsonconfig[4].value;

                $scope.rows = [];
                var newx;
                var newy;

                for(var k=0;k<=1;k++){
                var c =document.getElementById(canvasid);
                    c.width=cwidth;
                    c.height=cheight;

Это ошибка, когда я использую ng-init

"angular.min.js: 127 TypeError: Невозможно прочитать свойство 'value' из undefined в b. $ Scope.init

1 Ответ

0 голосов
/ 02 июля 2019

Может быть, я получил решение.Кажется, чтобы решить мою проблему.Вот кодугловая часть

$scope.myrunner =function(canvasid){

    var flag=0;
    $http({
         method: 'GET',
         url: 'http://localhost:5000/database'
    }).then(function (data){
    },function (error){
         console.log("big error");
    });
    $http({
        method: 'GET',
        url: 'Data/input.json'
    }).then(function (data){
        $scope.datainput=data.data;
        console.log($scope.datainput);
    },function (error){
        console.log("big err");
    });

    $http({
        method: 'GET',
        url: 'Data/config.json'
    }).then(function (config){
        $scope.dataconfig=config.data;
        $scope.init(canvasid);//this is the previous function 
        console.log($scope.datainput);
    },function (error){
        console.log("config error");
    });         
}

$scope.refresh = function(){
    location.reload();              
}

$scope.init = function(canvasid) {
    var json=JSON.parse(JSON.stringify($scope.datainput));
    var jsonconfig=JSON.parse(JSON.stringify($scope.dataconfig));

HTML часть

<div>

      <canvas ng-style="mybody" id="myCanvas" ng-init=myrunner('myCanvas')  style="border:1px solid #d3d3d3;">
      Your browser does not support the HTML5 canvas tag.

      </canvas>
  </div>
  <div>
    <canvas ng-style="mybody" id="myCanvas2" ng-init=myrunner('myCanvas2') style="border:1px solid #d3d3d3;">
    Your browser does not support the HTML5 canvas tag.

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