一尘不染

如何获取Angular的$ scope的输入值?

angularjs

我是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指令的按钮,该指令在我尝试获取值的地方触发控制器的功能。


阅读 278

收藏
2020-07-04

共1个答案

一尘不染

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

就是说,您需要触发一些东西来获取此值。例如,在您有评论的地方// get the scope value here-控制器初始化后立即触发,并且不再调用它;因此,那时它将以未定义状态记录。但是,如果将其设置为单击按钮或其他操作,您将看到它可用:

<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);
    }
}]);

现在,在输入中键入一些内容,然后单击按钮。

2020-07-04