gpt4 book ai didi

javascript - 一旦文本区域变得可见,就转换它的值

转载 作者:行者123 更新时间:2023-11-28 04:35:22 25 4
gpt4 key购买 nike

我有一个默认使用 ng-show="somecondition" 隐藏的文本区域我改变somecondition在我的代码中,文本区域变为可见。

绑定(bind)到文本区域的文本有 <br />里面有标签。我想删除 <br />一旦文本区域变得可见。

我不知道在哪里绑定(bind)删除 br 的函数。

如果我创建指令,则不会出现类似 load 的事件在文本区域上。

有人有想法吗?

注意:由于绑定(bind)到 textarea 的变量也绑定(bind)到其他元素,我无法过滤 <br />在应用程序启动时。

最佳答案

假设您不想只创建一个自定义指令,并绑定(bind)到 ngModel modelValue/viewValue Hook ,您可以按照评论中的建议在 Controller 中使用一个简单的监视。由于您没有发布任何 JS,我将做出一些假设,但您应该明白要点。注意:我不喜欢 $scope 变量(请参阅点规则),因此我使用 Controller 分配。

app.controller("someController", function($scope)
{
var self = this;

this.somecondition = false;
this.bound_data = "testing<br />123";

$scope.$watch(function() { return self.somecondition; }, function(newVal, oldVal)
{
if (newVal)
{
self.bound_data = self.bound_data.replace("<br />", "\n");
}
else
{
self.bound_data = self.bound_data.replace("\n", "<br />");
}
}
});

我个人的偏好是将数据保留在 NewLines 中,并编写一个自定义过滤器,将 NewLines 转换为 <br />标签在文本区域外渲染时,但如果您已经在处理具有 <br /> 的存储数据标签,使用 Watch 或 Custom Directive 与 ngModel 是正确的方法。请注意,如果您随后必须使用 <br /> 保存此数据保存时您需要进行相同转换的标签 - 可能最简单的方法是设置 somecondition变量恢复为默认值,以便 watch 中的代码自动为您进行转换 - 例如:

self.save = function()
{
// fires the watch transform
self.somecondition = false;

// now save your data with the <br /> tags in-tact
}

关于javascript - 一旦文本区域变得可见,就转换它的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44264044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com