首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在部分HTML中获取“无法读取空的属性'getContext‘”

在部分HTML中获取“无法读取空的属性'getContext‘”
EN

Stack Overflow用户
提问于 2016-03-11 15:26:29
回答 1查看 2.9K关注 0票数 1

我正在构建一个画布元素中的HTML5色轮。我使用AngularJS生成各个页面。有了在单独文件中生成画布的源代码,我想我会没事的,因为我的index引用它。因为这不能工作(得到上面的错误),我求助于将它放置在一个JavaScript文件中,该文件充当此HTML分部的控制器。我最终得到的是完全相同的错误。

下面是这个部分的AngularJS:

代码语言:javascript
复制
'use strict';

angular.module('careApp.tMain', ['ngRoute'])

.config(['$routeProvider', function($routeProvider) {
  $routeProvider.when('/tMain', {
    templateUrl: './templates/tMain.html',
    controller: 'tMainCtrl'
  });
}])

.controller('tMainCtrl', function($scope, $http) {
      //Draw color wheel inside canvas
      var canvas = document.getElementById("picker");
      var context = canvas.getContext("2d");
      var x = canvas.width / 2;
      var y = canvas.height / 2;
      var radius = 100;
      var counterClockwise = false;

      for(var angle=0; angle<=360; angle+=1){
        var startAngle = (angle-2)*Math.PI/180;
        var endAngle = angle * Math.PI/180;
        context.beginPath();
        context.moveTo(x, y);
        context.arc(x, y, radius, startAngle, endAngle, counterClockwise);
        context.closePath();
        var gradient = context.createRadialGradient(x, y, 0, x, y, radius);
        gradient.addColorStop(0,'hsl('+angle+', 10%, 100%)');
        gradient.addColorStop(1,'hsl('+angle+', 100%, 50%)');
        context.fillStyle = gradient;
        context.fill();
      }
  $scope.dimmer = 100;
});

对于HTML,您需要知道的是,该部分具有以下canvas元素:

代码语言:javascript
复制
<canvas id="picker" width="150" height="150"></canvas>

index.html包含所有外部脚本和包含其中每个部分的主div。主要应用程序JS也存在,但它只是用于加载插件和依赖项。

这个设置不对吗?我需要尝试另一种方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-11 15:35:51

您应该为画布元素创建一个指令,然后在指令链接函数中直接访问元素,而不是使用id。

您所遇到的问题可能是因为您的页面的部分是在您的控制器第一次被击中之后加载的,因此无法找到该元素。var canvas = document.getElementById("picker");返回null,因为它找不到元素,所以getContext无法工作。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35943994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档