Javascript 从单个HTML*字符串注册多个部分*

Javascript 从单个HTML*字符串注册多个部分*,javascript,html,angularjs,partials,Javascript,Html,Angularjs,Partials,想象一下,我有一个包含多个HTML片段的字符串,如下所示: <script type="text/ng-template" id="ratings/down"> <i class="fa fa-thumbs-o-down" style="position: absolute; color: red; font-size: 2em; left: .6em; top: .3em;"></i> </script> <scr

想象一下,我有一个包含多个HTML片段的字符串,如下所示:

<script type="text/ng-template" id="ratings/down">
    <i class="fa fa-thumbs-o-down"
        style="position: absolute; color: red; font-size: 2em; left: .6em; top: .3em;"></i>
</script>

<script type="text/ng-template" id="ratings/up">
    <i class="fa fa-thumbs-o-up"
        style="position: absolute; color: #77AA33; font-size: 2em; left: .6em; top: .3em;"></i>
</script>

请注意,这目前不是DOM的一部分。它位于字符串变量中。我是否可以以某种方式轻松地将所有部分注册为自定义字符串操作,而不进行自定义字符串操作?想象一下HTML字符串要复杂得多,完全放弃了字符串操作的想法。我希望有一个更简单的方法来做到这一点?我有种感觉,我不会随便摆弄
$compile
..

这里有一个工作:

var字符串class='1〕\
降级\
\
\
\
\
'
var div=document.createElement('div');
div.innerHTML=字符串;
对于(变量i=0;i
我们创建一个假div来为我们进行解析


备注:此逻辑应该放在一个单独的服务中。

您可以通过将字符串解析为HTML,然后迭代DOM中的
元素,然后使用
$templateCache
@NikosParaskevopoulos手动注册每个脚本的内部文本来完成此操作。是的,我希望避免这样做-但是,除了其他的想法,我正在努力,正如我们所说:/是的,我最终得到了一个非常相似的解决方案。谢谢你的参考。我想,我希望
$templateCache
内置了:P
var string = '<script type="text/ng-template" id="ratings/down"> \
    <i class="fa fa-thumbs-o-down" \
        style="color: red; font-size: 2em; left: .6em; top: .3em;">rating down</i> \
    </script> \
 \
    <script type="text/ng-template" id="ratings/up"> \
    <i class="fa fa-thumbs-o-up" \
        style="position: absolute; color: #77AA33; font-size: 2em; left: .6em; top: .3em;"></i> \
    </script>'

var div = document.createElement('div');

div.innerHTML = string;

for (var i = 0; i < div.children.length; i++){
    var temp = div.children[i];
    $templateCache.put(temp.id, temp.innerHTML);
}