我的应用程序将基于房屋,所以我的示例将在下面格式化。将能够创建包含房屋信息的项目,包括每侧,以及每侧的窗户。
现在我正在使用vanilla对象来管理我的数据。我正在使用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服务。
非常感谢您的帮助。