【发布时间】:2014-10-02 14:44:41
【问题描述】:
我有一个简单的 Angular webapp,但当我重新访问路线时遇到问题。在第一次访问时,路由的控制器使一切正常运行。在第二次访问时,事情破裂了。控制器设置视图中画布元素的尺寸。一个精简的控制器示例:
// app.js
var app = angular.module('noahdecocoApp', ['ngAnimate', 'ngCookies', 'ngResource', 'ngRoute', 'ngSanitize', 'ngTouch']);
app.config(function ($routeProvider) {
$routeProvider
.when('/particle-page', {
templateUrl: 'views/particle.html',
controller: 'ptclCtrl'
})
});
// ptclCtrl.js
app.controller('ptclCtrl', function($scope){
var canvas = document.getElementById("ptclCanvas");
var ctx = canvas.getContext("2d");
ctx.canvas.width = 500;
ctx.canvas.height = 500;
});
//particle.html
<canvas id='ptclCanvas'></canvas
第一次,这工作正常。第二次,画布重置为其原始默认值。我不确定为什么会这样?我做错了吗,有没有Angular的方法可以做到这一点?我要做的第二件事是添加和动画粒子,因为我怀疑同样的问题,所以我无法实现,我的 Array 变量仅在第一次加载时初始化。任何帮助表示赞赏,我一直在努力寻找解决方案数周!
【问题讨论】:
-
您能发布一下您是如何进行路由的,以及如何使用 ptclCtrl 吗?
-
当然!我刚刚更新了我的帖子以包含一些 app.js 和particle.html。这不是整个块,只是相对的部分。谢谢。
标签: javascript angularjs controller reload