そこで、AngularJSを使用してアプリケーションを構築しています。
JSONからデータを取得します。JSONは、ラベル、x座標、y座標、および幅/高さを持つデータから存在します。
私は自分のファイルのこのコードでこれを行いcontroller.js
ます:
function locationController( $scope, $http, getCss) {
$http.get('file.json').success(function(data) {
$scope.locations = data;
});
}
そして、次のようにHTMLで出力します。
<section ng-controller="locationController">
<ul>
<div ng-repeat="location in locations" ng-style="location.css()" >
<p>{{location.label}}</p>
</div>
</ul>
</section>
ここで、繰り返しているdivのCSSを生成するサービスを作成したいと思います。これは、JSONから取得した場所の幅/高さxeny座標に基づいています。
コードは次のとおりです。
var app = angular.module('myApp', []);
app.factory('getCss', function() {
return {
css : function(x , y , value) {
return {
backgroundColor: "#333",
x: (x - value) + 'px',
y: (y - value) + 'px',
width: (value * 2) + 'px',
height: (value * 2) + 'px',
color: "#FFF"
}
}
}
});
しかし、このサービスを各場所にリンクするにはどうすればよいですか?