如何将输入值输入 Angular 的 $scope?

How do I get an input value into Angular's $scope?

我是 Angular 的新手,我正在尝试做一些非常基础的事情。这是视图的一部分(所有 angular 文件都添加到其他地方):

 <div ng-controller='ctrl'>
    <input type='text' ng-model='id'>
 </div>

这是我的控制器:

 module.controller('ctrl',['$scope', function ($scope) {

    // get the scope value here
}]);

我想做的很简单。我想使用输入值。我尝试了 $scope.data = []$scope.data.push($scope.id) 之类的方法来创建一个具有范围值的数组,但它没有用。当我尝试显示该值时,我在控制台上看到 'undefined'。

你们有什么想法吗?

编辑:视图还有一个带有 ng-click 指令的按钮,它触发控制器的功能,我试图在其中获取我的值。

该值将自动添加到 $scope,但您必须在 input 元素中键入一些内容。

就是说,您需要触发一些东西才能获得这个值。例如,在您发表评论的地方 // get the scope value here ——控制器一初始化就会触发,再也不会调用;所以,它会在那个时候记录 undefined 。但是,如果您将其设置为单击按钮或其他方式,您将看到它可用:

<div ng-controller='ctrl'>
   <input type='text' ng-model='id'>
   <button ng-click="logId()">Log ID</button>
</div>

还有你的控制器:

module.controller('ctrl',['$scope', function ($scope) {
    $scope.logId = function() {
        console.log($scope.id);
    }
}]);

现在在输入框中输入内容并单击按钮。

如果你真的需要它在数组中,只需在你的控制器中这样做:

$scope.data = [0];

并在 HTML 中执行 <input type="text" ng-model="data[0]">

当您在 INPUT 中输入内容时,它将自动填充该数组值,id 将始终位于数组中的第一个位置。

或者你可以用object来处理 在控制器中: $scope.data = {};

在HTML<input type="text" ng-model="data.id">