这听起来,我一直在努力做一个非常简单的任务,在这里它去使用..获取从输入值控制器角度JS
我需要一个输入框的值一用户将输入他们的文本,然后在Angular JS中将值传递给我的控制器。该值在按下按钮时传递给控制器,然后我可以在我的代码中使用此值,即简单的控制台或警报以验证其正在工作。
但是,我试过各种解决方案,不工作。请在下面的代码片段:
HTML
<label for="newEmail" class="sr-only">New email address</label>
<input data-ng-model="updateUser.newEmail" type="text" id="newEmail"
maxlength="254" pattern="[a-z0-9._%+-][email protected][a-z0-9.-]+\.[a-z]{2,3}$" size="20"
class="form-control" placeholder="{{user.email}}">
<button type="button" class="btn btn-primary btn-md"
data-ng-click="updateUser.updateProfile()" style="margin:
3px">Update</button>
JS
app.controller('adminCtrl', ['$scope', 'Auth', '$state', '$firebaseArray',
'$timeout', '$firebaseArray', function($scope, Auth, $state, $firebaseArray,
$timeout) {
$scope.updateUser = {
email: ''
};
$scope.updateProfile = function() {
console.log('User clicked register', $scope.updateUser.email);
};
}]);
请注意,我用各种依赖于控制器,还有待进一步的功能,所有的作品perfectley 。上面的主要问题我试过(和其他各种)要么返回一个空值或消息'未定义'。
谢谢,
你的'ngModel'与'updateUser.newEmail'绑定,因为你的控制台的打印值是'$ scope.updateUser.email'。因此,请将'ngModel'中的ether从'newEmail'更改为'email'或将'console'从'$ scope.updateUser.email'更改为'updateUser.newEmail'。 –
我刚刚尝试将控制台更改为updateUser.newEmail,并尝试更改以下对象:'$ scope.updateUser = { 电子邮件:'' };'到'$ scope.updateUser = { newEmail:'' };'。当我点击“更新”按钮时,这两个选项都不起作用,控制台上也不会显示任何内容。 –
我已经尝试了很多这里的选项,我可能没有帮助自己,因为我没有说我在这里使用ng-repeat来填充一个带有行的表格,那是输入框被保存的位置。我认为这可能与问题有关? –