angularjs - 输入文本字段中的未定义错误

时间:2014-01-27 23:22:17

标签: angularjs

尝试初始化用户输入的文本输入框但是收到错误。 $ scope可以在取消注释时设置intext。我已经破解了这种(有点),但我像往常一样缺少一些基本的东西。

控制台错误开始:'错误:$ scope.intext未定义',除非我指定了一个值。输入框专门用于用户输入。还注意到我可以指定'为什么'并且在我尝试拆分之前不会得到错误。

angular.module('myApp', [])
    .controller('TextScreen', ['$scope', function($scope) { 
        //$scope.intext = "what";
        var why = $scope.intext.split('-');
}]);

HTML

<div id="cont" ng-app="myApp">
<div ng-controller="TextScreen">
    <input type="text" ng-model="intext" />
</div>
</div>

2 个答案:

答案 0 :(得分:1)

原因是$scope.intext未定义。 intext

目前还不清楚你要做什么,但我建议初始化intext或将代码移动到函数中。像这样:

$scope.change = function() {
   var why = $scope.intext.split('-');
};

<强> HTML

<input type="text" ng-model="intext" ng-change="change()" />

像角度文档中建议的那样:

http://docs.angularjs.org/api/ng.directive:ngChange

或尝试使用ng-init

ng-init="intext= 'demo'"

<强>示例

 <input type="text" ng-model="intext" ng-init="intext= 'demo'" />

0

答案 1 :(得分:1)

var why = $scope.intext.split('-');

正在立即处理,但当时$scope.intext未定义,因此您无法在其上调用.split

如果您尝试对用户输入的值采取行动,则应该对其进行监视

$scope.$watch('intext', function(oldvalue, newvalue){ 
  if(angular.isDefined(newvalue) && newvalue != oldvalue) //ensuring undefined should not processed
    var why = newvalue.split('-'); 
});