Angular观看两个表单字段的最佳方式

时间:2015-08-17 05:27:26

标签: angularjs

我有一群人,每个人都应该有电话和姓名, 所以我做了:

<div ng-repeat="a in arr">
  <ng-form>
    phone{{a}}:<input type="phone" name="phone" />
    text{{a}}:<input type="text" name="name" />
  </ng-form>
</div>

当完成为第一个人输入电话和姓名时,我想调用“doSomething”功能。

最好的方法是什么?我宁愿不使用手表。

例如,这是一个plunker

3 个答案:

答案 0 :(得分:1)

我建议您在案件中使用ng-blur。使用ng-keyup将触发每个键释放事件的功能,这根本不是好事。您应该查看以下示例示例如何工作

 phone{{a}}:<input type="phone" data-ng-blur="doSomething();" name="phone" />

我已更新您的fiddle以查看更多内容。

修改

如果您只想执行第一次迭代,那么您应该将index传递给您的函数并检查它是否等于0。然后它必须是第一次迭代。像

ng-blur="doSomething($index)"

在你的功能中

$scope.doSomething = function(index){
if(index === 0)
   alert("finish");
};

答案 1 :(得分:0)

实现这一目标的方法之一是

 <input type="phone" name="phone" ng-model="input.phone"  ng-change="onchange()"/>
 <input type="text" name="name" ng-model="input.name" ng-change="onchange()"//>

然后是你的范围

 scope.input = {};
 scope.onchange = function(){
       if(!input.phone) return;
       if(!input.name) return;
       //other logic
 }
顺便说一下,最佳实践说你的ng模型总是有一个点

答案 2 :(得分:0)

可能你正在寻找以下内容。

<强> HTML

$scope.doSomething= function () {
// do something
};

<强>控制器:

ng-blur

注意:您也可以使用tomcat_host=192.10.10.100 tomcat_port=8080 tomcat_username=admin tomcat_password=12345 context_path=myApplication curl -v -u ${tomcat_username}:${tomcat_password} -T ${artifact} 'http://'${tomcat_host}':'${tomcat_port}'/manager/text/deploy?path=//'${context_path}'' ,只有在您从输入字段离开焦点后才会触发。{/ p>