将模型属性设置为基于但不等于角度形式的输入的值

时间:2015-07-30 20:26:10

标签: angular-formly

我正在试图弄清楚如何解析表单条目以将模型属性设置为其他内容;例如,从URL输入中提取youtube视频的视频ID。有没有办法使用解析器/格式化程序(6.21功能?)来轻松实现这一目标?我希望能找到一个很好的例子,也许某个地方有一个,但如果不存在的话,也许这会成为一个好的。

Here is a working example我想要完成的任务,但是在多个步骤中并且不使用解析器。任何帮助调整代码以一步(或至少少于3步)从URL设置model.videoID的任何帮助将非常感激。感谢您对此以及我过去的其他问题的帮助。 :)

1 个答案:

答案 0 :(得分:1)

哇,这比我预期的要容易得多。使用parsers angular-formly@6.21.0的{​​{3}}最近添加了{ key: 'vidid', type: 'input', parsers: [extractID], templateOptions: { label: 'YouTube Video', placeholder: 'Insert video URL here' }, ,用于在一个功能中从YouTube网址中提取视频ID。它也方便地验证了自己!

以下是相关代码,总结如下:

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];
    }
  }
};

...

var myStrings = ["one","two","three"] // an array of strings

for aString in myStrings {

    var currentString = aString // access each element here

}