首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >指令中的指令

指令中的指令
EN

Stack Overflow用户
提问于 2014-08-28 12:51:08
回答 1查看 253关注 0票数 0

我有一个定制的减价指令,效果很好。现在,我想在通过这个减价指令加载的内容中使用一个定制的youtube指令。youtube指令本身运行良好,但一旦我将其放入标记文件中,它就会被角忽略。

以下操作很好(但不是我想要做的):

.html

代码语言:javascript
复制
<div markdown link="contentfile.md">
</div>

<div my-youtube code="'videoidhere'"></div>

.md

代码语言:javascript
复制
markdown content here

以下是我想做的事情(但不起作用):

.html

代码语言:javascript
复制
<div markdown link="contentfile.md">
</div>

.md

代码语言:javascript
复制
markdown content here

<div my-youtube code="'videoidhere'"></div>

more markdown content here

在第二种情况下,似乎从未调用过YouTube指令。

在对减价指令进行评估之后,我需要做些什么来告诉角来评估这个指令呢?

为了完整起见,以下是指令:

减价:

代码语言:javascript
复制
app.directive( 'markdown', function( $http ) {
    var converter = new Showdown.converter();
    return {
        restrict: 'A',
        scope: { link: '@' },
        link: function ( scope, element, attrs ) 
        {   
            attrs.$observe('link',function(link)
            {
                $http.get('modules/test/files/' + link).success(function(response)
                {
                    var htmlText = converter.makeHtml(response);
                    return element.html(htmlText);
                });
            });
        }
    };
});

youtube:

代码语言:javascript
复制
app.directive('myYoutube', function( $sce ) {
  return {
    restrict: 'EA',
    scope: { code:'=' },
    replace: true,
    template: '<div style="height:400px;"><iframe style="overflow:hidden;height:100%;width:100%" width="100%" height="100%" src="{{url}}" frameborder="0" allowfullscreen></iframe></div>',
    link: function (scope) {
        scope.$watch('code', function (newVal) {
           if (newVal) {
               scope.url = $sce.trustAsResourceUrl("http://www.youtube.com/embed/" + newVal);
           }
        });
    }
  };
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-28 13:03:23

您确实使用.md指令将DOM添加到DOM文件中,但是由于它没有编译,angular不注册它。

像这样的事情应该有效:

代码语言:javascript
复制
$http.get('modules/test/files/' + link).success(function(response)
{
    var htmlText = converter.makeHtml(response);
    element.html(htmlText);
    $compile( element.contents() )( scope );
    return element;
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25549275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档