如何将输入值输入 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">
我是 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">