Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在angular 5和typescript中使部分文本区域不可编辑?_Angular_Typescript - Fatal编程技术网

如何在angular 5和typescript中使部分文本区域不可编辑?

如何在angular 5和typescript中使部分文本区域不可编辑?,angular,typescript,Angular,Typescript,我有一个使用angular 5和typescript开发的angular项目。 在我的组件的html模板中,我有一个文本区域框。 我想使此文本区域中的前几个字符不可编辑。 你知道我怎样才能做到吗 例如,在我的组件ts文件中,我可以设置初始值,例如:RMO到我的文本区域 用户无法删除文本区域中设置的文本RMO 我有一些jquery代码,我试图将其转换为typescript。然而,它也不起作用。[您可以看到使用jquery的工作示例] 这是我在components html模板中定义的文本区域 &l

我有一个使用angular 5和typescript开发的angular项目。 在我的组件的html模板中,我有一个文本区域框。 我想使此文本区域中的前几个字符不可编辑。 你知道我怎样才能做到吗

例如,在我的组件ts文件中,我可以设置初始值,例如:RMO到我的文本区域

用户无法删除文本区域中设置的文本RMO

我有一些jquery代码,我试图将其转换为typescript。然而,它也不起作用。[您可以看到使用jquery的工作示例]

这是我在components html模板中定义的文本区域

<textarea id="messageTxt" formControlName="message" rows="6" [placeholder]="'PLACEHOLDERS.MESSAGE' | translate" (keydown)="ensureMessagePrefixNonEditable(messageTxt.value)" (keyup)="calculateMessagingSegmentCount(messageTxt.value)" #messageTxt></textarea>
但是问题是我能够从文本区域中删除该值。非常感谢您的帮助 多谢各位


谢谢你

一种老套的方法是在用户用模糊或保存功能填写完不可编辑文本后检查文本区域文本,如果没有,则将其重新打印

例如,您有一个初始文本变量,希望成为不可编辑的文本initText:string='initial text',并且您有[ngModel]=taText连接到元素。使用ngOnInit或构造函数{}设置this.taText=this.initText。然后单击按钮或模糊按钮,检查taText是否仍有初始文本,如果没有,则重新添加:

checkForSavedText(): void {
    this.fullText = this.taText;
    if (!this.fullText.includes(this.initText)) {
      console.log('Saved text not present');
      this.fullText = this.initText + this.taText;
      this.taText = this.fullText;
    } else {
      console.log('Saved text is present');
    }
}

这是一个例子。

尝试一下,你有没有找到更好的方法,因为你没有接受我的答案?我有一个和你类似的解决方案。ie当用户删除“初始文本”时,我将使表单无效,因此用户无法提交表单,只有在验证成功时,用户才能提交表单。这是一个直截了当的解决办法。但是客户不接受这个解决方案,所以我的经理不接受这个解决方案,这就是为什么我不接受你的答案。非常感谢你的解决方案。
checkForSavedText(): void {
    this.fullText = this.taText;
    if (!this.fullText.includes(this.initText)) {
      console.log('Saved text not present');
      this.fullText = this.initText + this.taText;
      this.taText = this.fullText;
    } else {
      console.log('Saved text is present');
    }
}