假设我有一个文本框和ng-model。我得到了textbox undefined的值。如果我给ng-model名称一个对象类型,那么它工作正常。
HTML
<input type="text" ng-model="search" ng-change="test()">
控制器
$scope.test=function()
{
var val=$scope.search;
alert(val);
}
如果我们在文本框中给出值,它总是警告undefined。 如果我们像这样给出函数之外的值
$scope.search=33;
$scope.test=function()
{
var val=$scope.search;
alert(val);
}
它在文本框中显示值
现在我改变了方案
HTML:
<input type="text" ng-model="search.text" ng-change="test()">
控制器:
$scope.search={'text':''};
$scope.test=function()
{
var val=$scope.search.text;
alert(val);
}
现在我得到了文本框的值。第一个场景中的问题是什么。
请帮忙。提前致谢。
答案 0 :(得分:1)
如果您希望$scope.search
成为对象,那么您拥有的内容无需初始化$scope.search=33;
或$scope.search={'text':''};
即可。
如果您希望$scope.search
成为字符串,那么您仍然无需初始化,但需要将ng-model
绑定更改为ng-model="search"
而不是ng-model="search.text"
尝试以下方法:
var app = angular.module('app',[]);
app.controller('ctrl', ['$scope', function($scope) {
$scope.testSearchText=function()
{
var val=$scope.searchText;
alert(JSON.stringify(val));
};
$scope.testSearchObject=function()
{
var val=$scope.searchObj;
alert(JSON.stringify(val));
};
}]);
<div ng-app="app">
<div ng-controller="ctrl">
<form>
<div>
<label for="SearchText">Search Text</label>
<input type="text" ng-model="searchText" ng-change="testSearchText()">
</div>
<div>
<label for="SearchText">Search Object</label>
<input type="text" ng-model="searchObj.text" ng-change="testSearchObject()">
</div>
</form>
</div>
</div>
或者看看plunker:time comparison ignore korean