0

我希望能够将第二个指令电话编译为警报,我该怎么做

<div ng-app="website">
    <div ng-controller="MyController">    
        <div phonebook="phone">  PhoneBook</div>
    </div>
</div>

http://jsfiddle.net/x3azn/aPWg8/1/

4

1 回答 1

1

您的问题是您使用 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/

于 2013-05-21T16:46:38.067 回答