2015-10-15 48 views
1

如何從通過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> 

如果第二個答案的對前一個問題的「解決方法」的方式仍然有效,可能有人割肉出來一點給我嗎? (他們建議將帶有腳本標記的字符串中嗎?)

+0

我認爲這個問題是在執行順序,你需要推遲paperscript執行,直到變量是由您的角度應用設置。還有一件事,在控制器中,你從'圖像'得到的值,但似乎你有一個陣列'圖像' – melsaqqa

+0

欣賞的想法。我的實際使用案例涉及每次更改畫布一張圖片。在這個例子中,我留下了「圖像中的圖像」,因爲這是我創建縮略圖菜單的方式,點擊時可以調用改變當前圖像的角度函數。這種特殊的paper.js工具的工作方式是將圖像標籤id中的圖像拖到畫布上。我的目標是使用該角函數將圖像上的圓形覆蓋圖的x和y座標更改爲每個單獨圖像的存儲值。 – Tom22

+0

位更多:當角函數被稱爲然而畫布圖像確實改變,它確實需要鼠標懸停在畫布以顯示新照片的第二動作(角度函數使最後消失,模糊使得新一個可見在實際畫布上)。包括這一點,因爲它可能會提示您懷疑的時機。我可能想問的第二個問題(但每次只有一個?)是如何強制一個paper.js函數由角函數內的某個東西觸發。 – Tom22

回答

0

我想出了一個簡單的變通(不知道爲什麼花了這麼長時間)我知道這是不是角方式可能有一些其他缺陷(我會更樂意把他們叫出來)

// un-shown angular module defines $scope.xCoor 

<div id="xCoor" class="hide-me-offscreen"> 
    {{x-coor}} 
</d> 

<script type="text/javascript" > 
    var targetX = num(getElementById("x-coor").html) 
</script> 
相關問題