AngularJS-ng开关内的指令不工作

AngularJS-ng开关内的指令不工作,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我在ng开关内有一条指令,如下所示: <div ng-switch on="myModel"> <div ng-switch-when="foo"> <zippy></zippy> </div> //Other ng-switch-when directives </div> 现在,当页面加载时,尽管myModel变成了foo,但模板不会加载。以下是borwser中元素的状态: &l

我在ng开关内有一条指令,如下所示:

<div ng-switch on="myModel">
    <div ng-switch-when="foo">
        <zippy></zippy>
    </div>
    //Other ng-switch-when directives
</div>
现在,当页面加载时,尽管
myModel
变成了
foo
,但模板不会加载。以下是borwser中元素的状态:

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


ng作用域
被追加-就是这样。元素未更改-指令未替换为模板。我做错了什么?如何使指令生效?

您需要在指令中添加
restrict

演示:

文件:

restrict—EACM子集的字符串,用于将指令限制为特定的指令声明样式。如果省略,则只允许在属性上使用指令

电子元件名称:

A-属性:

C级:


M-Comment:

默认情况下,指令是“仅属性”,因此至少需要在指令定义中添加
restrict:'E'
。我的错!我知道
restrict
有一个默认值,但我假设它是元素而不是属性。我遇到了完全相同的问题,但restrict属性有“EA”。ng scope类被应用于我的自定义指令元素,但它没有被呈现。似乎是一个错误的角度。
<div ng-switch-when="foo" class="ng-scope">
    <zippy></zippy>
</div>
app.directive('zippy', function() {
    return {
        scope: false,
        template: "Hello FooBar",
        restrict: 'E'
    };
});