如何从另一个Component angular2的模板获取id值

时间:2016-07-08 14:05:45

标签: typescript angular drag-and-drop

我需要从另一个组件模板获取标签的ID

  •   <li id="form" (onDragStart)="getDraggableId($event)">Form</li>
    

    在typescript文件(组件)中我有这个

     getDraggableId(event) {
            this.gridService.setDraggabledIdGrid(event.mouseEvent.target.id);
            console.log("event  " + this.gridService.getDraggabledIdGrid());
    
        }
    

    如何获得event.mouseEvent.target.id

    我尝试创建一个服务gridService来介于两个组件之间

    @Injectable()
    export class gridService {
        draggableIdGrid:string;
    
        constructor() {
    
        }
        getDraggabledIdGrid():string{
            return this.draggableIdGrid;
        }
        setDraggabledIdGrid(value){
            this.draggableIdGrid = value;
        }
    }
    

    但是当我调用方法getDraggableIdGrid时,我得到了未赋值的值

  • 2 个答案:

    答案 0 :(得分:0)

    最有可能的是,您不小心创建了两个gridService服务实例。

    确保只有一个祖先组件在其var load_source = function (path) { /* Variable used to determine whether the request was successful */ var success = false; $.ajax( { url: path, async: false, dataType: 'script', method: 'GET', success: function(){ success = true; }, error: function (xhr, status, error) { console.log(error.stack ? error.stack : error); } } ); return success; } 数组中指定gridService - 即one instance per component subtree - 或者,使您的服务可用application-wide

    答案 1 :(得分:-1)

    你可以这样做

    (<HTMLInputElement>event.target).id)