Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ng模型未定义为空字符串?_Javascript_Angularjs - Fatal编程技术网

Javascript ng模型未定义为空字符串?

Javascript ng模型未定义为空字符串?,javascript,angularjs,Javascript,Angularjs,我正在将用户输入传递给控制器函数,但空字符串不声明对象属性 <form> <input type="text" ng-model="data.location" /> <input type="text" ng-model="data.radius" /> <button type="button" ng-click="getSearch(data)">Search</button> </form> $sco

我正在将用户输入传递给控制器函数,但空字符串不声明对象属性

<form>
  <input type="text" ng-model="data.location" />
  <input type="text" ng-model="data.radius" />
  <button  type="button" ng-click="getSearch(data)">Search</button>
</form>

$scope.getSearch = function(data) {
  console.log(data);
  //undefined
  //...but what if I want {location:'', radius:''}
};

搜寻
$scope.getSearch=函数(数据){
控制台日志(数据);
//未定义
//…但是如果我想要{位置:'',半径:'}
};

在动态传递空字符串时,是否有方法强制创建对象属性?

您应该能够将控制器中的data.location和data.radius初始化为“”,至少这样它们就不会未定义。

您应该以
$scope.data
的身份访问它,而不仅仅是
数据


另外,您不需要将其作为参数传递给
getSearch()
模型
绑定到
$scope
,应该通过
$scope

访问,当然可以,但这是唯一的方法吗?没有办法强制它运行?@DanKanze否则只有在编辑文本框Ng init={data:{location:'',radius:''}时才会初始化对象。这会起作用,但与控制器中的情况相同,这比我所做的更有意义。