如何从一个输入添加项目到列表

时间:2014-08-26 16:52:14

标签: javascript html angularjs

我有以下代码:jsfiddle

HTML

<div ng-app="test">
    <div ng-controller="ListCtrl">
        <input type="email" ng-model="newContact" ng-keyup="$event.keyCode==13?addContact():''"/>
        <ul>
            <li ng-repeat="email in newContacts">
            {{ email }}
            </li>
        </ul>
    </div>
</div>

JAVASCRIPT:

angular
.module('test', [])
.controller('ListCtrl', function($scope) {
    $scope.newContact= 'somestring'
    $scope.newContacts = [];
    $scope.addContact = function() {
        $scope.newContacts.push($scope.newContact);
        $scope.newContact = '';
    };
})
;

但它没有按预期工作。我期待输入预先填充somestring但它将是空的。

我第一次在空输入keyCode==13上按Enter(somestring)将被添加到列表中,即使我在输入字段中没有看到somestring

第二次点击输入一个空字符串将被添加,无论我在输入中输入什么。

如果我更改输入并按Enter键,null''将添加到列表中。

有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:1)

问题是您的输入类型是电子邮件,并且您传递的是无效的电子邮件字符串,例如,如果我更改为文本类型,它会按预期工作,或者如果您也插入有效的电子邮件如果要保留输入电子邮件类型

,则可以正常工作

答案 1 :(得分:-1)

$ scope.newContacts为空。你没有迭代你的控制器功能。 你只需定义一个函数来迭代或求助一个数组,你不执行它。 你需要执行你的内在功能。