【问题标题】:Set default value to a textarea (AngularJS)将默认值设置为文本区域(AngularJS)
【发布时间】:2016-08-13 19:22:36
【问题描述】:

我将 PHP 与 AngularJS 一起使用,我想将默认值设置为 textarea。

但是,我不想使用ng-init="textarea = ''",因为我要填充的数据非常大。我也不想使用 AJAX,因为这会向服务器添加另一个请求。

有没有办法直接用 PHP 设置值

<textarea ng-model="textarea"><?php echo $data ?></textarea>

这样做没有任何意义,因为 Angular 希望我使用模型来设置值。

当前 HTML

<textarea ng-model="textarea" class="textarea"></textarea>

当前的 AngularJS 和 JQuery

$scope.jqta = $('.textarea');

$.get("/fetch", function(response) {
     $scope.jqta.text(response);
});

【问题讨论】:

  • 你能在你的AngularJS控制器中使用$scope.textarea = &lt;?php echo $data ?&gt;来初始化值吗?您不能在 JS 中使用多行字符串,因此您必须用 '\n' 替换所有换行符,以便它们仍然正确显示。我在 python 中遇到了这个问题并做了val.replace('\n', '\\n').

标签: javascript php jquery angularjs


【解决方案1】:

使用 HTML:

<textarea ng-model="textarea" class="textarea">Default value</textarea>

如果这不起作用:

$scope.textarea = 'Default value';

【讨论】:

  • 试过了,它什么也没显示,因为 Angular 想让我使用 ng-model
  • $scope.textarea = '这必须在 js 文件中'。我试图将它直接设置到 php 文件中。
  • @Moe 为什么会这样?您应该尽最大努力将语言分成单独的文件。内联编写代码通常被认为是不好的做法。
  • 在我所处的情况下,是因为数据量很大,而不仅仅是 1 行,这就是为什么我试图制作它,所以它通过 php 设置它。
  • @Moe 这就是 更多 分开事物的原因 - 您应该在数据库中有大量文本字符串。如果你这样做了,并且你是使用 PHP 从数据库中获取的,那么请查看这个如何使用 PHP 变量设置 ng-model 值的示例:jsfiddle.net/U3pVM/26694
猜你喜欢
  • 2018-10-01
  • 2013-12-27
  • 1970-01-01
  • 2011-12-27
  • 1970-01-01
  • 2015-08-09
  • 1970-01-01
  • 2018-09-14
  • 1970-01-01
相关资源
最近更新 更多