关于我的Angular应用,我有一个奇怪的问题。
当用户在输入框中输入文本时,我想获取输入文本。
我的HTML
<input type="text" class="form-control" ng-model="texts" ng-change="type()"/>
我的js
$scope.type = function() {
console.log($scope.texts)
console.log($scope) //doesn't see texts property either
}
但是,每次输入内容时,第一个控制台日志都会显示“未定义”。这就像控制器找不到文本属性。谁能帮我解决这个奇怪的问题?非常感谢!
答案 0 :(得分:1)
$scope
传递给控制器。检查你的控制器参数。
答案 1 :(得分:1)
这可以通过使用角度two-way data binding system:
来实现Angular应用程序中的数据绑定是数据的自动同步 模型和视图组件之间。 Angular实现的方式 数据绑定允许您将模型视为单一的事实来源 你的申请。视图始终是模型的投影。 当模型更改时,视图会反映更改,反之亦然。
这允许我们通过在html中绑定它们来同步控制器范围的属性。
所以,我们可以像这样定义我们的控制器:
myApp.controller('SomeController', function ($scope) {
$scope.text = "";
});
现在,我们可以在我们的html中使用它:
<div ng-controller="SomeController">
<input type="text" class="form-control" ng-model="text" />
</div>
这里需要注意的重要事项是ng-model
指令。在这里,我们将在控制器中定义的text
属性绑定到<input>
字段。现在,使用双向绑定,如果我们输入输入字段,它将自动更新text
属性。这样我们就可以在控制器中访问输入字段的值,而无需进行任何额外的工作。
这是一个带有工作示例的plnkr:http://plnkr.co/edit/xEkoDbPxwrWgGfuEiS3a?p=preview
希望这会有所帮助: - )