从ng-model获取返回的$ scope值

时间:2016-02-29 17:49:38

标签: javascript jquery html angularjs firebase

如何使用ng-model从输入生成的对象中获取值,以便在我的脚本中使用而不是键和值?

如此接近于解决这个问题,现在我在Get a value from input to use in controller Angular JS

来自我之前的问题

我终于设法阻止表中的单个输入值(使用ng-repeat)通过使用以下代码显示每行的每个相同位置:

<input data-ng-model="newEmail[$index]" type="text" id="newEmail"    maxlength="254" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,3}$" size="20" class="form-control" placeholder="{{user.email}}">

基本上,我需要从ng-model中输入的值才能在我的控制器中使用,我目前正在使用这个值:

$scope.newEmail = {};

$scope.updateProfile = function (profile) {
    setTimeout(function () {
        console.log('New email is: ', $scope.newEmail);
    }, 1000);
};

我遇到的问题是它从输入框中返回一个对象 {1:'此处输入的任何文本'} 。然后,我似乎无法从对象中获取值来更新Firebase中的值,因为它将键和值都写入我正在尝试写入的Firebase位置。

必须有一种超级简单的方法来获取我缺少的对象的值?

1 个答案:

答案 0 :(得分:0)

输入框不会返回对象。这是因为您并未将ng-model分配为$scope.newEmail而是$scope.newEmail[$index]。这就是为什么当你得到{1: '...'}并且它是正确的时候你得到$scope.newEmail的原因。

我不知道您使用的是什么案例,但为什么要将newEmail初始化为对象,而不仅仅是:

$scope.newEmail = null

然后将其指定为:

ng-model="newEmail"