我希望能够将第二个指令电话编译为警报,我该怎么做
<div ng-app="website">
<div ng-controller="MyController">
<div phonebook="phone"> PhoneBook</div>
</div>
</div>
我希望能够将第二个指令电话编译为警报,我该怎么做
<div ng-app="website">
<div ng-controller="MyController">
<div phonebook="phone"> PhoneBook</div>
</div>
</div>
您的问题是您使用 ng-class 作为声明性类(实例化指令)。这将不起作用,因为 ng-class 添加到元素的类是在编译后添加的,因此 $compile 函数无法识别。
更换
var template = '<div ng-class="{phone2: number}" >Phone</div>';
和
var template = '<div class="phone2">Phone</div>';
会让它工作。
我不明白您为什么将数字与要实例化的 phone2 指令相关联,但我认为这是两件事之一:要么有条件地包含它,要么将number
模型绑定到指令。如果你想创建一个有条件出现的指令,一种方法是使用 ng-switch,包括它下面的指令。
但是,如果您想要创建数据绑定,您可以这样做:
var template = '<div class="phone2" data-number="number">Phone</div>';
在指令中包含对绑定的引用:
.directive('phone2', function($compile){
return {
restrict: 'AC',
scope:{number:"="},
link: function(s,e,a,c){
在此处发布了对您的代码的略微修改的编辑:http: //jsfiddle.net/aPWg8/2/