一次创建单个项目的项目列表



Angular task 1.5.x:

我有这样的对象:

{
    id: 1,
    name: "a",
    items: [
        {"holiday": "false", "day": "monday"}, 
        {"holiday": "true", "day": "tuesday"...}
    ]
}

我希望通过单击一个按钮以上述方式创建一个新对象。注意 我不想一次单独添加每个项目。意味着,对于名称为"a"的单个对象,我想一次添加所有日期的所有项目。

我可以让它工作,但我想知道正确的方法。

最终我们应该能够以上述格式(没有id)创建一个JavaScript对象(我认为这种格式是正确的)并将其发送到服务器,以便它工作。但是如何添加html/angle代码,以便我以这种方式获得一个对象。

请让我知道更多信息。

使用 ng-model 时,您不必完全定义对象即可构造它。 例如:

控制器

$scope.object= {
    items: [] 
};
var n = 7;
for (var i = 0; i < n; i++)
    $scope.object.items({});

.HTML

<input type="text" ng-model="object.name"/>
<div ng-repeat="currObj in object.items">
    <input type="text" ng-model="currObj.holiday" />
    <input type="text" ng-model="currObj.day" />
</div>

必须事先定义常规结构,但不必初始化所有属性。它们将在触发绑定时接收值(视图 -> 模型)。

你可以

这样做:

在视图中创建一个按钮,并使用ng-click指令捕获点击时事件。

目录:

<button ng-click="createCopy()"></button>

使用 angular.copy 创建源对象的深层副本。

这是angular.copy在文档中解释的作用:

创建源的深层副本,该副本应为对象或数组。

如果未提供目标,则对象或数组的副本为 创建。如果提供了目标,则其所有元素(对于 数组)或属性(对于对象)被删除,然后全部 源中的元素/属性将复制到其中。如果源不是 返回对象或数组(包括 null 和未定义)源。如果 源与目标相同,将引发异常。

控制器:

$scope.mainObject = { id: 1, name: "a", items: [{"holiday": "false", "day": "monday"}, {"holiday": "true", "day": "tuesday"...}] };
$scope.createCopy = function (){    
  $scope.copyObject = angular.copy($scope.mainObject);
}

相关内容

  • 没有找到相关文章

最新更新