0

我有这种情况,我从列表中设置了一个当前项目,我需要使用 textarea 来编辑该元素的值。由于某些限制,我必须使用 keyup 事件,但我认为这不是问题。

检查这个小提琴:http: //jsfiddle.net/terebentina/Euj2C/

  1. 单击第一个/第二个按钮 - 它可以工作,它将 textarea 中的文本更改为每个元素的值。
  2. 将 textarea 中的文本更改为某物
  3. 再次单击第一个/第二个按钮 - textarea 不再更新。如果您查看控制台,您可以看到它在元素之间切换,只是 textarea 不再更新。

有什么建议么?这让我发疯了!

4

1 回答 1

1

我知道有更好的方法来修改你的指令来做到这一点,但作为一个快速修复,你现在可以尝试将你的textarea绑定到一个ngModel值,该值只是所选元素中当前文本的副本:

<textarea keyup="" ng-model="keyupText"></textarea>

将此作为您的current功能:

$scope.current = function(idx) {        
    $scope.current_element = $scope.elements[idx];
    $scope.keyupText = $scope.current_element.value;
    console.log('current is', $scope.current_element.value);
}

有关示例,请参见此小提琴。

于 2012-10-05T16:39:09.970 回答