私のアプリは大まかに住宅に基づいているため、以下の例はそのようにフォーマットされています。各側面と各側面の窓を含む家に関する情報を含むプロジェクトを作成する機能があります。
現在、バニラ オブジェクトを使用してデータを管理しています。私は ng-repeat を使用して、側面とその測定値をリストしています。これはうまく機能していますが、「角度のある方法」で実行できるように感じ、それを利用していないことを除いて.
たとえば、次のようなものです。
function Side(name)
{
this.name = name;
this.measurements = [];
this.subtractions = [];
this.photos = [];
this.expanded = false;
this.addMeasurement = function()
{
var m = new SideMeasurement();
m.name = 'Measurement '+(this.measurements.length+1);
this.measurements.push(m);
}
}
function SideMeasurement()
{
this.name = '';
this.width = '';
this.height = '';
}
rbpApp.controller('newProjectCtrl', ['$scope', function($scope) {
var defaultSideNames = ['Front','Left Side','Right Side','Back'];
var sides = [];
for(var i = 0; i<defaultSideNames.length; i++)
{
var side = new Side(defaultSideNames[i]);
side.addMeasurement();
sides.push(side);
}
$scope.sides = sides;
}]);
両側にいくつかの動作を追加する必要があるまでは、これで問題ありません。潜在的に外観を変更したり、ユーザーの操作に基づいて動作を追加したりします。各側はディレクティブにする必要がありますか? 各側に複数の測定値がある可能性があるため、それらもディレクティブにする必要がありますか? また、各家はプロジェクトなので、コントローラー間で簡単に渡されるオブジェクトにラップするにはどうすればよいでしょうか? このデータは、Web サービスを介してローカル ストレージにも保存する必要があります。
助けてくれてありがとう。