是否可以使用javascript中的setAttribute将属性设置为[config]并将值设置为configForScroll?

时间:2018-05-18 09:41:31

标签: javascript angular

我正在ngx-slimscroll项目中工作,我使用了<perfect-scrollbar [config]="configForScroll"></perfect-scrollbar>,其中包含带有属性的标记,如下所示

<perfect-scrollbar>

现在,我的要求是使用我已成功完成的document.createElement()函数动态创建var patt = document.createAttribute("[config]"); patt.value = "configForScroll"; 元素。但是,将属性设置为 [config] 我是得到错误

  

未捕获DOMException:无法在'Document'上执行'createAttribute':提供的限定名称('[config]')包含无效的名称 - 开始字符'['。   那么,有没有办法设置这种属性,如下面的代码所示

 if(a[s]<=a[s+1])
      return sorted(a,s+1,n)
 else
     return false;

请找我一种解决方法。提前致谢

1 个答案:

答案 0 :(得分:1)

是否可以使用javascript中的setAttribute将属性设置为 [config] ,并将值设置为configForScroll?

您无法使用特殊字符'[config]'创建名为'[' and ']'的属性。 这样做会引发here

指出的INVALID_CHARACTER_ERR例外情况
  

INVALID_CHARACTER_ERR如果参数包含无效字符   XML属性。

但您可以创建名为&#39; config&#39;;

的属性

document.createAttribute("config");//valid

请注意,动态附加组件标记无法按预期工作。 Angular不会检测到这些变化。您新添加的节点将被视为纯Dom节点,而不是角度组件。

如果您打算添加动态组件,请查看dynamic-component-loader此stackoverflow answer =&gt; How can I use/create dynamic template to compile dynamic Component with Angular 2.0?