Angularjs 纯用HTML声明角度指令?
(与我关于Programmers.SE的另一个问题高度相关: ) 当我想重用几行HTML时,我不得不在另一个文件中编写一些JavaScript样板文件来创建一个指令,这真的很烦人。我真的想在同一个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
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可以满足您的所有需求:不完全可以,因为它不会像我的示例中那样创建一个隔离的作用域,所以任何参数传递都会污染当前的作用域,这是不好的。在这一点上,我认为很明显,根本没有现成的解决方案。我会停止我的案子,然后自己实施。。。