Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ng开关的更好替代品?_Javascript_Angularjs_Angularjs Directive - Fatal编程技术网

Javascript ng开关的更好替代品?

Javascript ng开关的更好替代品?,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我试图根据条件动态加载指令模板,在我的例子中,是指令范围中的type属性。正在加载的模板如下所示: <div ng-switch="type"> <div ng-switch-when="player" ...></div> <div ng-switch-when="npc" ...></div> </div> 在阅读了一些相关的问题后,我发现有一种方法可以实现ng switch的功能,但在指令本身中。

我试图根据条件动态加载指令模板,在我的例子中,是指令范围中的
type
属性。正在加载的模板如下所示:

<div ng-switch="type">
    <div ng-switch-when="player" ...></div>
    <div ng-switch-when="npc" ...></div>
</div>

在阅读了一些相关的问题后,我发现有一种方法可以实现ng switch的功能,但在指令本身中。我曾尝试在替换指令中模板字符串的函数中使用vanilla JS switch,但没有成功,我的猜测是因为我使用了scope属性作为切换条件

由于不熟悉Angular,因此很难找到和理解问题的解决方案,因此,如果我没有足够清楚地解释我的问题,请告诉我


非常感谢您的帮助。

我发现这个开关非常优雅。。。使用它有什么问题?你能展示一下你的尝试吗?@sp00m没问题,ng开关工作正常。在阅读了一些相关的问题后,我想有一种方法可以在没有外部html文件的情况下完成相同的行为,并在directive@ShivamTiwari我尝试的基本上是指令模板中的一个开关函数,它根据满足的条件返回模板作为字符串加载。这应该可以工作,基于switch,形成一个HTML字符串,并使用$compile服务将作用域链接到结果模板。