如何从通过JavaScript的角度Controller来Paper.js传递数据?如何传递从角度控制器的数据给JavaScript或Paper.js
这是一个问题几乎相同,这先前的问题:
Pass Angular scope variable to Javascript
第一个答案前面的问题就不会为我工作(我在下面的话),我不清楚地了解第二个答案(这是一个解决方法太)
编辑:我想通了,允许传递值 从角为Javascript有点俗气的解决方案:我知道这是不是角方式 可能有一些等缺点(和我会更乐意有 他们叫了) - 我展示它下面的答案)
是一个新的答案现已上市,两年后?
也许有一个paper.js直接的方法? (前面的问题没有涉及到paper.js)以下
我的代码和环境细节:
// snippet frome angular controller named "colorSelector"
$scope.xCoor = image.xCoor;
$window.xCoor = image.xCoor; //hoped this would work but doesn't
//angular works fine in the html
<p> {{description}}</p>
<p>{{xCoor}} is the X coordinate, {{yCoor}}</p>
编辑:删除NG重复包装,因为它并不直接适用于问题(第二编辑。清理,截至更多)
//paper.js successfully has access to global JS variables, but
//I cannot get angular information into the JavaScript variables
<script type="text/javascript">
targetX = 250; targetY=270; //hardwired works (I'm only using x for example)
// targetX = {{image.xCoor}} doesn't work (no surprise)
// targetX = window.xCoor // I thought this might work? but it doesn't
// suggestion below from earlier S.O. question doesn't work for me
// targetX = angular.element(document.querySelector('[ng-controller="colorSelector"]')).scope().xCoor
</script>
<!-- paper.js section below -->
<script type="text/paperscript" canvas="myCanvas">
//below works if variables are set above
var target = new Path.Circle({
center: [targetX, targetY],
radius: 10,
strokeColor: "white"
});
</script>
如果第二个答案的对前一个问题的“解决方法”的方式仍然有效,可能有人割肉出来一点给我吗? (他们建议将带有脚本标记的字符串中吗?)
我认为这个问题是在执行顺序,你需要推迟paperscript执行,直到变量是由您的角度应用设置。还有一件事,在控制器中,你从'图像'得到的值,但似乎你有一个阵列'图像' – melsaqqa
欣赏的想法。我的实际使用案例涉及每次更改画布一张图片。在这个例子中,我留下了“图像中的图像”,因为这是我创建缩略图菜单的方式,点击时可以调用改变当前图像的角度函数。这种特殊的paper.js工具的工作方式是将图像标签id中的图像拖到画布上。我的目标是使用该角函数将图像上的圆形覆盖图的x和y坐标更改为每个单独图像的存储值。 – Tom22
位更多:当角函数被称为然而画布图像确实改变,它确实需要鼠标悬停在画布以显示新照片的第二动作(角度函数使最后消失,模糊使得新一个可见在实际画布上)。包括这一点,因为它可能会提示您怀疑的时机。我可能想问的第二个问题(但每次只有一个?)是如何强制一个paper.js函数由角函数内的某个东西触发。 – Tom22