【发布时间】:2021-12-16 07:45:20
【问题描述】:
我正在使用 Tagify 和我构建的自定义 AngularJS 指令,Tagify 混合输入在一个字符串中返回所选标签和文本的 JSON 对象,例如:
var tagify = new Tagify(myElement, {
mode: 'mix',
pattern: /@/,
whitelist: [{ value: "User Name", code: '$name' }, { value: "Phone Number", code: '$phone' }],
enforceWhitelist: true,
dropdown: {
maxItems: 20,
classname: "tags-look",
enabled: 0,
closeOnSelect: true
}
});
tagify.on('change', () => console.log(tagify.DOM.input.value))
用户输入将是:
您好
User Name ×,短信已发送到您的手机Phone Number ×。
这个简单的例子返回:
您好
[[{ value: "User Name", code: '$name' }]],短信已收到 发送到您的手机[[{ value: "Phone Number", code: '$phone' }]]。 (并且返回的 JSON 被转义)
我稍后要做的是用我自己的动态变量替换用户选择的标签(通过输入@ 字符并从下拉列表中选择它们)。
我能够使用tagify.DOM.input.textContent 获得一个不错的结果,因为它呈现了以下结果:
您好,用户名,短信已发送到您的手机电话号码。
但是,由于whitelist 是可翻译的,并且可以翻译成其他语言,而我以后无法轻松使用find and replace,因此我需要的是来自JSON 白名单的code 属性,而不是value。我还没有找到方法的预期结果是:
Hello $name, the SMS has been sent to your phone $phone.
谢谢。
【问题讨论】:
-
对不起,我没有收到您的请求。
-
您说使用
tagify.DOM.input.textContent可以生成Hello User Name, the SMS has been sent to your phone Phone Number。你能发布你为此编写的代码吗? -
只需使用
tagify.DOM.input.textContent即可返回上述结果! -
“以后无法轻松查找和替换”是否意味着您不想修改此“Hello [[{ value: "User Name", code: '$name' } ]],短信已发送到您的手机 [[{ value: "Phone Number", code: '$phone' }]]" -> to this -> "您好$name,短信已发送到您的手机美元电话。” ?
标签: javascript json