找到解释angularJS指令的amazing video。但是,有一件事我听说我有一个问题。
“在角度指令中,名称不是唯一的,因此我们需要支持这样一个事实:对于每个名称,可能有几个指令工厂。”
^我不确定这个。主持人是否说同一指令名称可以重新声明两次(具有不同的工厂功能)?类似下面的代码。
app.directive('myDirective', function() {
return {
template: '<h1>hello</h1>'
}
});
app.directive('myDirective', function() {
return {
template: '<h1>hi</h1>'
}
});
然而,像这样的代码似乎抛出一个错误..如果有人能澄清一个,那将是很好的。)angularJS是否为每个指令存储多个工厂函数?和b。)如果可能的话,何时何地会我们做这样的事情?
答案 0 :(得分:0)
根据angular tips,您可以拥有2个具有相同名称的指令,它们将协同工作。 在评论中提到你不能有孤立的范围或需要控制器。
我尝试使用具有相同名称和不同模板的2指令,并使用了第一个模板,没有错误(jsfiddle)。
<div ng-app="ui.directives">
<my-d></my-d>
</div>
var dirs = angular.module('ui.directives', []);
dirs.directive('myD',
function() {
return {
restrict: 'E',
template: 'hey'
};
}
);
dirs.directive('myD',
function() {
return {
restrict: 'E',
template: 'hello',
};
}
);
你的错误是什么?尝试添加一个jsfiddle