我正在使用以下示例
https://docs.angularjs.org/api/ng/directive/ngController
在上面提到的例子中,我添加了一个名为save的新按钮。 在保存中,我试图将所有联系人推送到一个数组中。 以下是我的保存代码。
$scope.SaveContact = function () {
var len = $scope.contacts.length;
var contactlist = [];
angular.foreach($scope.contacts, function (value, key) {
contactlist.push( value.type + ':' + key);
}, contactlist);
console.log(contactlist);
};
有人可以帮我解决这个问题。
答案 0 :(得分:0)
尝试以下
var contactlist = [];
angular.forEach($scope.contacts, function(value, key) {
this.push(key + ': ' + value);
}, contactlist);
如果value.type
存在,您可以使用this.push(key + ': ' + value.type);
答案 1 :(得分:0)
你应该先修复.foreach的拼写。
由于您在迭代数组,因此键将是索引,值将是存储在数组中的对象。你也在做一个字符串连接(键+":" +值)所以你会得到一个像这样的数组:
["0, [Object Object]", "1, [Object Object]", ...]
我建议使用Array原型.forEach而不是angular .forEach,因为你不需要使用键(在这种情况下是数组索引)。
$scope.SaveContact = function () {
var contactlist = [];
$scope.contacts.forEach(function(contact) {
contactlist.push(contact.type + ":" + contact.value);
});
console.log(contactlist);
};
如果你想使用angular.forEach,我会说:
angular.forEach($scope.contacts, function(value, key) {
this.push(value.type + ': ' + value.value);
}, contactlist);
但我不推荐它,因为很容易将angular.forEach回调中的value参数与"值"混淆。存储在$ scope.contacts数组中的对象的键。
我假设您使用角度文档中的$ scope.contacts格式:
$scope.contacts = [
{type:'phone', value:'408 555 1212'},
{type:'email', value:'john.smith@example.org'} ];
这样,你应该得到一个这样的数组:
["phone:408 555 1212","email:john.smith@example.org"];
另外,我建议使用$ scope.contactlist而不是var contactlist,因此可以在SaveContact函数之外访问该列表。