奇怪的角度ng模型问题

时间:2014-06-26 22:28:09

标签: javascript html angularjs model

关于我的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
  }

但是,每次输入内容时,第一个控制台日志都会显示“未定义”。这就像控制器找不到文本属性。谁能帮我解决这个奇怪的问题?非常感谢!

2 个答案:

答案 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

希望这会有所帮助: - )