指令的“type”属性有什么作用?我似乎无法找到它的记录。指令的“type”属性有什么作用?
下面是它的用法的例子: https://github.com/crudbetter/angular-charts/blob/master/src/piechart.js#L81
这是否使用只需创建一个未使用的属性,或者它实际上具有某种意义?
指令的“type”属性有什么作用?我似乎无法找到它的记录。指令的“type”属性有什么作用?
下面是它的用法的例子: https://github.com/crudbetter/angular-charts/blob/master/src/piechart.js#L81
这是否使用只需创建一个未使用的属性,或者它实际上具有某种意义?
type
属性控制模板的包装方式。具体而言,如果它是svg
或math
它包装在div
和该类型的子元素。下面是利用它在指令API生活from the source的$编译服务中的功能:
function wrapTemplate(type, template) {
type = lowercase(type || 'html');
switch (type) {
case 'svg':
case 'math':
var wrapper = document.createElement('div');
wrapper.innerHTML = '<' + type + '>' + template + '</' + type + '>';
return wrapper.childNodes[0].childNodes;
default:
return template;
}
}
它现在被称为templateNamespace
,并在文档如此描述。
就AngularJS Directive Definition Object文档而言,没有提及任何“type”属性。
在您提供的源代码中,它们使用值'SVG'。唯一相关的属性是templateNamespace
,它对应于模板中标记使用的文档类型。
AngularJS需要这些信息,因为这些元素需要在通常的容器(如<svg>
和<math>
)外定义时以特殊方式创建和克隆。
编辑:
好吧,我想如果type
作品像templateNamespace
查不到,但不能做任何他们工作(试图与角V1.3.2和V1.2.1)。
这里的fiddle
是的,现在叫templateNamespace。 –
https://docs.angularjs.org/api/ng/service/$compile属性的名称是因为1.3.0-beta.19更精确'templateNamespace' – Blackhole