Angularjs ng使用控制器显示ng隐藏

Angularjs ng使用控制器显示ng隐藏,angularjs,ng-show,ng-hide,Angularjs,Ng Show,Ng Hide,我试图编辑一个字段,并在点击按钮时将标签转换为文本字段,然后在按键事件(ng keypress)时将其更改回标签 我正在通过控制器更改ng show变量,但它不起作用 HTML: 我最新的JS小提琴链接:使用ng模糊代替ng按键 <input ng-show="editMode" ng-blur="changemode() " > 使用ng模糊代替ng按键 <input ng-show="editMode" ng-blur="changemode() " >

我试图编辑一个字段,并在点击按钮时将标签转换为文本字段,然后在按键事件(ng keypress)时将其更改回标签

我正在通过控制器更改ng show变量,但它不起作用

HTML:


我最新的JS小提琴链接:

使用ng模糊代替ng按键

  <input ng-show="editMode" ng-blur="changemode() " >

使用ng模糊代替ng按键

  <input ng-show="editMode" ng-blur="changemode() " >

您希望从视图中混淆尽可能多的逻辑。因此,正如他所建议的,使用

<input ng-show="editMode" ng-keypress="changemode($event)">

您希望从视图中混淆尽可能多的逻辑。因此,正如他所建议的,使用

<input ng-show="editMode" ng-keypress="changemode($event)">

你能试试下面的解决方案吗

<input ng-show="editMode" ng-keypress="changemode($event) " >

你能试试下面的解决方案吗

<input ng-show="editMode" ng-keypress="changemode($event) " >

它不适用于您的原因是,您没有阻止
Enter
键的默认行为。因此,在执行
changemode
功能并将
editmode
设置为
false
后,也将执行编辑按钮的单击事件,将
editmode
设置回
true

您只需调用
event.preventDefault()如下所示:

function showCrtl($scope){
  $scope.field="Chanel";
  $scope.changemode=function(event){
    if(event.charCode==13){
      $scope.editMode = false;
      event.preventDefault(); // <<<<<<<
    }
  }
}
函数showCrtl($scope){
$scope.field=“香奈儿”;
$scope.changemode=函数(事件){
if(event.charCode==13){
$scope.editMode=false;

event.preventDefault();//它对您不起作用的原因是,您没有阻止
Enter
键的默认行为。因此,在执行
changemode
功能并将
editmode
设置为
false
后,也会执行编辑按钮的单击事件,将
editmode
设置回
true

您只需调用
event.preventDefault();
,如下所示:

function showCrtl($scope){
  $scope.field="Chanel";
  $scope.changemode=function(event){
    if(event.charCode==13){
      $scope.editMode = false;
      event.preventDefault(); // <<<<<<<
    }
  }
}
函数showCrtl($scope){
$scope.field=“香奈儿”;
$scope.changemode=函数(事件){
if(event.charCode==13){
$scope.editMode=false;


event.preventDefault();//然后在我开始键入时,它将立即更改为标签。我想编辑该字段,然后按enter键,它将变回label@Rachel检查更新的答案,这是演示,然后在我开始键入时,它将立即更改为标签。我想编辑该字段,然后按enter键,它将更改回label@Rachel检查更新的答案,这是演示,您可能需要使用超时来强制摘要循环:您可能需要使用超时来强制摘要循环:超时并更改标签,但字段未更新。单击“回车”按钮后,视图更新为频道和编辑按钮。但我没有弄清楚您的问题?您正在查看哪个字段希望得到更新?我更新了我的提琴以使其更清晰:更新了提琴,我希望您的问题现在能够得到解决。它超时并更改为标签,但字段未更新。单击“回车”按钮后,视图更新为频道和编辑按钮。但我没有清楚地了解您的问题?您希望更新哪个字段?我更新了我的提琴使它更清晰:更新了提琴,我希望你的问题现在能得到解决。谢谢你的解释谢谢你的解释
function showCrtl($scope){
  $scope.field="Chanel";
  $scope.changemode=function(event){
    if(event.charCode==13){
      $scope.editMode = false;
      event.preventDefault(); // <<<<<<<
    }
  }
}