我的应用程序将松散地基于房屋,所以这就是我的示例在下面的格式。将能够创建包含房屋信息的项目,包括每一侧和每一侧的窗户。
现在我正在使用 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;
}]);
在我需要在每一边添加一些行为之前,这一切都很好。比如可能改变它的外观,或者根据用户交互向它添加行为。每一方都应该是一个指令吗?每一方都可以有多个测量值,那么它们也应该是一个指令吗?此外,每个房子都是一个项目,那么我怎样才能将它包装成一个可以在控制器之间轻松传递的对象呢?这些数据还必须通过网络服务存储在本地存储中。
非常感谢您的帮助。