Angular JS - 在textarea中显示和编辑模型并在模型更改时更新

时间:2015-02-19 21:48:05

标签: javascript angularjs textarea angular-ngmodel

我刚来自这篇文章:

Angular JS display and edit model in textarea

这对我想要实现的目标非常有帮助,但是我需要更进一步,在模型值发生变化时更新textarea。我在上面的帖子中与@JustMaier合作过去example。我想我需要添加一个$watch但不确定如何/在哪里确切...感谢您对此的帮助,谢谢!

2 个答案:

答案 0 :(得分:0)

是的,你是对的。它的动态记录ngModel并没有注意深层次的变化,因此当模型发生深刻变化时,不会发表zpdate视图:

https://docs.angularjs.org/api/ng/type/ngModel.NgModelController

因此,您需要将ngModel值添加到指令范围,以便在其上使用$watch

scope:{'ngModel':'='}

然后添加watch,将视图值更新为指令链接函数:

scope.$watch ('ngModel', function (newval) { 
  ngModel.$viewValue = toJson(newval);
  ngModel.$render();
}, true);

参见演示: http://codepen.io/anon/pen/xbWamy

答案 1 :(得分:0)

您可以watch model directive中的formatters值,并在更改时触发scope.$watch(function() { return ngModel.$modelValue; }, function(modelValue) { // trigger the formatters ngModel.$modelValue = ''; }, true);

{{1}}

DEMO