0

我有一个指令ng-switch如下:

<div ng-switch on="myModel">
    <div ng-switch-when="foo">
        <zippy></zippy>
    </div>
    //Other ng-switch-when directives
</div>

该指令定义为:

app.directive('zippy', function() {
    return {
        scope: false,
        template: "Hello FooBar"
    };
});

现在,当页面加载时,虽然myModel确实变为foo,但模板不会加载。以下是浏览器中元素的状态:

<div ng-switch-when="foo" class="ng-scope">
    <zippy></zippy>
</div>

该类ng-scope被附加 - 就是这样。元素不会改变 - 指令不会被模板替换。我究竟做错了什么?我怎样才能让指令起作用?

4

1 回答 1

1

您将需要添加restrict到您的指令:

演示: http: //plnkr.co/edit/Jc77jrY4U0xGalN5QkZA

app.directive('zippy', function() {
    return {
        scope: false,
        template: "Hello FooBar",
        restrict: 'E'
    };
});

文档: http ://docs.angularjs.org/guide/directive

restrict - 将指令限制为特定指令声明样式的 EACM 子集字符串。如果仅在属性上允许省略指令。

E - 元素名称:

A - 属性:

C - 等级:

M - 评论:

于 2013-04-16T15:38:47.350 回答