2017-06-12 80 views
0

我有一个初始化函数,我想检测时,标签的下拉菜单中删除(从语义UI):流星在onRendered功能找到this._id

call.js

Template.calledit.onRendered(function() { 
    $('.ui.dropdown').dropdown({ 
     onLabelRemove(value) { 
     console.log(value); 
     console.log(this._id); 
     } 
    }); 
}); 

call.html

<template name="calledit"> 
    <div class="field"> 
    <label>Assign Units</label> 
    <div id="edit_call_assign_units_{{_id}}" class="ui multiple search selection dropdown"> 
     <input type="hidden" name="edit_call_assign_units_{{_id}}" value="{{units}}"> 
     <i class="dropdown icon"></i> 
     <div class="default text">Assign Units</div> 
     <div class="menu"> 
     <div class="item" data-value="420">420</div> 
     <div class="item" data-value="F-117">F-117</div> 
     <div class="item" data-value="805">805</div> 
     <div class="item" data-value="230">230</div> 
     <div class="item" data-value="506">506</div> 
     </div> 
    </div> 
    </div> 
<template> 

然而,我有检测一个问题它被调用的模板。我如何在onRendered函数中访问this._id

+0

能否请您补充一点,与此而来的模板代码? 'this'没有指向你的Doc,所以this._id可能没有定义。添加console.log(this)来检查传递给onLabelRemove的对象。 –

+0

@SaeedD。我有控制台登录它,但我找不到_id。我也将模板添加到主题中。我有点难倒如何做到这一点:( – DarkTakua

回答

0

貌似错误的上下文,也许这

Template.calledit.onRendered(function() { 
    var tmpl = this; 
    $('.ui.dropdown').dropdown({ 
     onLabelRemove(value) { 
     console.log(value); 
     console.log(tmpl._id); 
     } 
    }); 
}); 

或者,如果你使用的ECMAScript,然后

Template.calledit.onRendered(function() { 
    $('.ui.dropdown').dropdown({ 
     onLabelRemove: (value) => { 
     console.log(value); 
     console.log(this._id); 
     } 
    }); 
});