将模型属性设置为基于但不等于 angular-formly 中的输入的值
Setting a model attribute to a value based on, but not equal to, the input in angular-formly
我正在尝试弄清楚如何解析表单条目以将模型属性设置为其他内容;例如,从 URL 输入中提取 YouTube 视频的视频 ID。有没有办法使用 parsers/formatters(6.21 功能?)轻松完成此操作?我希望为此找到一个很好的例子,也许某个地方有一个,但如果没有,也许这会是一个很好的例子。
Here is a working example 我试图完成的任务,但是分多个步骤完成并且没有使用解析器。任何帮助调整代码以在单个步骤(或至少少于 3 个步骤)中从 URL 设置 model.videoID
的帮助将不胜感激。感谢您对这个问题和我过去的其他问题的帮助。 :)
哇,这比我预期的要容易得多。 Here is the modification of the JS Bin 使用 parsers
,最近添加了 angular-formly@6.21.0
,在一个函数中从 YouTube URL 中提取视频 ID。它还可以方便地自我验证!
这里是相关代码,总结一下:
{
key: 'vidid',
type: 'input',
parsers: [extractID],
templateOptions: {
label: 'YouTube Video',
placeholder: 'Insert video URL here'
},
...
function extractID(value) {
if (value != undefined || value != '') {
var regExp = /^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=|\?v=)([^#\&\?]*).*/;
var match = value.match(regExp);
if (match && match[2].length == 11) {
return match[2];
}
}
};
我正在尝试弄清楚如何解析表单条目以将模型属性设置为其他内容;例如,从 URL 输入中提取 YouTube 视频的视频 ID。有没有办法使用 parsers/formatters(6.21 功能?)轻松完成此操作?我希望为此找到一个很好的例子,也许某个地方有一个,但如果没有,也许这会是一个很好的例子。
Here is a working example 我试图完成的任务,但是分多个步骤完成并且没有使用解析器。任何帮助调整代码以在单个步骤(或至少少于 3 个步骤)中从 URL 设置 model.videoID
的帮助将不胜感激。感谢您对这个问题和我过去的其他问题的帮助。 :)
哇,这比我预期的要容易得多。 Here is the modification of the JS Bin 使用 parsers
,最近添加了 angular-formly@6.21.0
,在一个函数中从 YouTube URL 中提取视频 ID。它还可以方便地自我验证!
这里是相关代码,总结一下:
{
key: 'vidid',
type: 'input',
parsers: [extractID],
templateOptions: {
label: 'YouTube Video',
placeholder: 'Insert video URL here'
},
...
function extractID(value) {
if (value != undefined || value != '') {
var regExp = /^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=|\?v=)([^#\&\?]*).*/;
var match = value.match(regExp);
if (match && match[2].length == 11) {
return match[2];
}
}
};