Javascript Jquery搞砸了”;这";余烬
我正在尝试删除特定的余烬表单集。通常在我的控制器中,这个reffers指向控制器,但是在jquery脚本之后,这个=“p”是一个图形 模板Javascript Jquery搞砸了”;这";余烬,javascript,jquery,ember.js,Javascript,Jquery,Ember.js,我正在尝试删除特定的余烬表单集。通常在我的控制器中,这个reffers指向控制器,但是在jquery脚本之后,这个=“p”是一个图形 模板 <p {{bind-attr class=id}}{{action 'getId'}}> Delete</p> 你可以向ofc提供与余烬相关的版本 干杯 Kristjan这看起来像是一个函数范围问题。尝试在外部函数中定义Id,稍后在相同的上下文中可以使用它 getId: function(){ var Id; //d
<p {{bind-attr class=id}}{{action 'getId'}}> Delete</p>
你可以向ofc提供与余烬相关的版本
干杯
Kristjan这看起来像是一个函数范围问题。尝试在外部函数中定义
Id
,稍后在相同的上下文中可以使用它
getId: function(){
var Id; //declare the variable outside of the context of the jQuery anonymous function scope
$( "p" ).on('click',function() {
Id = $( this ).attr('class');
console.log(Id); // Returns id properly .
// here this reffers to "p" normally it reffers to the controller.
)};
this.deleteSpecificFormset(Id); // "Id" should now be defined
}
或者,您可以将外部作用域this
引用保存在self
变量中,并从回调内部调用deleteSpecificFormset
:
getId: function(){
var self = this;
$( "p" ).on('click',function() {
var Id = $( this ).attr('class');
self.deleteSpecificFormset(Id);
)};
}
因为你在
p
的上下文中,所以$(这个)
属于p
那里,你怎么能说它通常指的是控制器?通常我不jquery,因此,通常它是由this调用的控制器。当然,this.deleteSpecificFormset
行上的Id
是未定义的。你为什么不这么想?它只在单击回调中定义,而特定的行不在单击回调中。在上下文之外,我想你应该提到。放一个console.log(这个)
作为getId()
函数的第一行,并告诉我它说了什么。@Tomalak Class{u childContainers:Object,\u subscrolrs:Array[1],\u dependentValidationKeys:Object,isValid:false,personmodels:Class…}@kristjan这个
的属性之一应该是您单击的元素ID(还要检查函数的参数
),直接使用它,而不是创建多余的(概念上是错误的)jQuery单击绑定。
getId: function(){
var self = this;
$( "p" ).on('click',function() {
var Id = $( this ).attr('class');
self.deleteSpecificFormset(Id);
)};
}