角度1:为新创建的对象添加新ID
Angular 1: Add new ID to newly created objects
我有一个只有1个输入字段的简单表单。对于每个输入,都会创建一个新对象。这是我添加新对象的方法。我正在寻找一种有角度的方式来为这些对象添加ID,你有什么建议?
$scope.addToDoItem = function(){
var toDoItems = $scope.toDoItems;
var newToDoItem = {
"id" : // id should be generated here
"content" : $scope.toDoItem,
"createdAt" : Date.now()
}
toDoItems.push(newToDoItem);
ls.set("toDoData", toDoItems);
$scope.toDoItem = "";
};
视图:
<form>
<input type="text" ng-model="toDoItem">
<input type="submit" ng-click="addToDoItem()">
</form>
我不认为有"棱角分明的方法"可以做到这一点。
但是,当前createdAt
值使用毫秒,因此Id也可以使用相同的值。如果你没有可以更频繁地添加新价值的应用程序,你就会有你独特的价值:
var currentDate = Date.now();
var newToDoItem = {
"id" : currentDate
"content" : $scope.toDoItem,
"createdAt" : currentDate
}
不利的一面是ID值会很大,而且它们不会按顺序排列。如果您希望值为1、2、3等,那么您可以在控制器中为最大ID创建变量,并使用它来增加值:
var maxId = 0;
//if you need to restore maxId you can use
//var maxId = $scope.toDoItems.reduce(function(max,cur){return Math.max(max,cur.id); },0);
$scope.addToDoItem = function(){
var toDoItems = $scope.toDoItems;
maxId++;
var newToDoItem = {
"id" : maxId,
"content" : $scope.toDoItem,
"createdAt" : Date.now()
}
toDoItems.push(newToDoItem);
ls.set("toDoData", toDoItems);
$scope.toDoItem = "";
};
如果你想要一个随机散列,你也可以做这个
$scope.addToDoItem = function() {
var toDoItems = $scope.toDoItems;
var newToDoItem = {
"id": function randString() {
var x = 32; // hashlength
var s = "";
while (s.length < x && x > 0) {
var r = Math.random();
s += (r < 0.1 ? Math.floor(r * 100) : String.fromCharCode(Math.floor(r * 26) + (r > 0.5 ? 97 : 65)));
}
return s;
},
"content": $scope.toDoItem,
"createdAt": Date.now()
}
toDoItems.push(newToDoItem);
ls.set("toDoData", toDoItems);
$scope.toDoItem = "";
};
相关文章:
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- Meteor-将选定窗体中的对象添加到集合中
- 在play2框架中向json对象添加下拉列表项
- 如何在javascript上向数组的对象添加新元素
- JSON到对象数组,并向每个对象添加项
- 如何将一个对象添加到每个对象数组中
- 向Angular作用域对象添加对象数组——TypeError
- CoffeeScript将对象添加到数组中
- 如何从Addon SDK向选项卡对象添加进度侦听器
- 使用ja将对象添加到HTML画布中
- 向通过ReST JSON调用生成的Angular Javascript对象添加方法
- 将新对象添加到本地存储
- 为什么可以'我们在函数体中为函数对象添加属性,就像在javascript中为对象文字添加属性一样
- 使用游标循环将JS对象添加到数组中
- 向调用全局javascript函数的对象添加处理程序
- 将另一个文件中的对象添加到单独文件中的阵列中
- 将对象添加到数组中
- 为新对象添加函数,将对象添加到数组中.理解困难'这'关键字
- sequelize为找到的对象添加值
- 向对象添加新方法和值,同时避免重复