AngularJS的世界比較新,到目前爲止享受它。
但是,我努力嘗試循環訪問我的數據庫中的條目,併爲每個條目渲染一個<canvas>
。AngularJS ng-repeat:動態渲染/綁定循環內的畫布
說這是我的數據(簡稱爲簡潔起見):
var paintings = [
{ "_id" : ObjectId("31c75"), "data" : "0,0,0,0" },
{ "_id" : ObjectId("deadb"), "data" : "1,3,0,255" }
];
這是由工廠加載到控制器:
app.factory('paintings', ['$http', function($http) {
var o = {
paintings: []
};
o.getAll = function() {
return $http.get('/paintings')
.success(function(data) {
angular.copy(data, o.paintings);
});
}
return o;
}]);
我通過每一個條目想要循環和構建一個<canvas>
元件,則該<canvas>
元件傳遞給另一個對象(Grid
)與data
作爲參數,創建上下文,並繪製於基於所述數據<canvas>
。
很簡單,對吧?不幸的是,我不知道該怎麼做,也沒有用哪個語言來提出更加棘手的問題。
我認爲存在的問題是我正在使用尚未呈現的內聯模板。
通常這是目前我想的辦法:
HTML:
<div ng-repeat="painting in paintings" some-directive-maybe="bindCanvas(painting._id)">
<canvas id="{{ painting._id }}" width="800" height="400"></canvas>
</div>
JS:
app.controller('PaintingCtrl', [
'$scope',
function($scope) {
$scope.bindCanvas(canvasId) {
var grid = new Grid(document.getElementById(canvasId));
// Have fun with grid
}
}
]);
幫幫我,StackOverflow上。你是我唯一的希望...
是您的繪畫對象的範圍,比如$ scope.paintings定義JS文件? –
@RaviTeja:我相信它應該複製到我包括在我最近的編輯工廠$範圍 – asgaines
我已經更新了我的答案。一探究竟。 –