Angularjs 纯用HTML声明角度指令?

Angularjs 纯用HTML声明角度指令?,angularjs,angularjs-directive,templating,Angularjs,Angularjs Directive,Templating,(与我关于Programmers.SE的另一个问题高度相关: ) 当我想重用几行HTML时,我不得不在另一个文件中编写一些JavaScript样板文件来创建一个指令,这真的很烦人。我真的想在同一个HTML文件中创建一个标记指令 然后我想到了一个主意:我可以创建一个特殊的指令(custom-tag),它从HTML声明一个指令 例如: <custom-tag name="icon" params="{which: '@which'}"> <span class="glyph

(与我关于Programmers.SE的另一个问题高度相关: )

当我想重用几行HTML时,我不得不在另一个文件中编写一些JavaScript样板文件来创建一个指令,这真的很烦人。我真的想在同一个HTML文件中创建一个标记指令

然后我想到了一个主意:我可以创建一个特殊的指令(
custom-tag
),它从HTML声明一个指令

例如:

<custom-tag name="icon" params="{which: '@which'}">
    <span class="glyphicon glyphicon-{{which}}" />
</custom-tag>

这将转换为一些JavaScript,如:

module.direcrtive('icon', {
restrict: 'E',
scope = {which: '@which'},
template = '<span class="glyphicon glyphicon-{{which}}" />',
});
module.directive('icon'{
限制:'E',
作用域={which:'@which'},
模板=“”,
});
我可以这样称呼它

<icon which="asterisk" />

我的问题是,像这样的东西已经存在于世界上了吗

(我知道这只是重新设计了一些其他模板框架,但我必须使用Angular。)

有(afaik)3种方法在Angular中引用模板:

  • 如问题中所述,可以将标记直接放在
    模板
    属性中

  • 可以通过单独文件中的
    templateId
    引用模板

  • 可以在
    中的同一页面中定义模板。
    并通过
    templateId:“template\u id.html”
    引用。详情如下:


您可以只使用内联模板
这就是你想要的吗?我不太明白这个问题,但是如果你只是想定义一个范围变量,你可以使用
ng init=“which='asterisk'”
@mrak,我想这不是我想要的。实际上,我想从HTML而不是JavaScript声明一个自定义指令。
@mrak我需要能够将参数传递给模板,这意味着我仍然需要用JavaScript声明该指令。嗨,我的目的是避免编写JavaScript,而不是仅仅找个地方存储模板。好的,所以你想要下划线模板之类的东西?ng include在这里可能是一个解决方案,但我不确定这种情况下的参数和模板位置。似乎ng include可以满足您的所有需求:不完全可以,因为它不会像我的示例中那样创建一个隔离的作用域,所以任何参数传递都会污染当前的作用域,这是不好的。在这一点上,我认为很明显,根本没有现成的解决方案。我会停止我的案子,然后自己实施。。。