kittencup / angular2-ama-cn

angular2 随便问
691 stars 101 forks source link

如何在组件中调用 其他插件(列如 lightbox2 这个中图片放大) #133

Open chenyukunJoshHub opened 8 years ago

chenyukunJoshHub commented 8 years ago

开发中会 遇到 一些 angular2 还没有提供的一些 组件 ,比如我现在需要做一个图片放大 lightbox2

http://lokeshdhakar.com/projects/lightbox2/#examples

我在index.html 中 加入 需要引入的资源,但是 比如

这种调用方式,在angular2 要怎么处理; 类似这种的 比如 编辑器js 组件 之类的

希望群主能写一个 简单, 明了的 提供思路

mmoonn2 commented 8 years ago

这里是我在项目中使用编辑器editor.md的例子 希望能帮助到你

@Directive({
    selector: '[md-to-html]',
})

export class MdToHtml 
{
    constructor(@Inject(ElementRef) elementRef: ElementRef)
    {
        var id = $(elementRef.nativeElement).attr('id')

        if( !id )
            return setTimeout(()=>{ this.constructor(elementRef) })

        editormd.markdownToHTML(id, {
            htmlDecode      : "style,script,iframe", 
            emoji           : true,
            taskList        : true,
            tex             : true, 
            flowChart       : true,
            sequenceDiagram : true,
        }, 500)
    }
}

@Directive({
    selector: '[editor-md]',
})

export class EditorMd
{
.......
}

引用

import { EditorMd, MdToHtml } from '../../directive/editor.md'
@Component({
        directives: [ MdToHtml, EditorMd ]
})

使用

<div md-to-html id="{{comment._id}}" style="padding:10px 0px">
                <textarea style="display:none;">{{comment.markdown}}</textarea>               
            </div>
guyue88 commented 7 years ago

兄弟,请问你指令里面的“ editormd”参数是从哪里获取的呢?你没有说在哪里导入editor.md啊?

hstarorg commented 7 years ago

@AspenLuoQiang 还有一种变量叫全局变量。

guyue88 commented 7 years ago

@hstarorg 所以你是在index.html就把editormd需要js都引入进去?

mmoonn2 commented 7 years ago

我尝试过用webpack引入editormd 但失败了 就放到index.html了 lightbox 这个的话用webpack应该容易