我试图在Ember的循环中调用一个动作函数。我正在通过这本书做所有事情我不知道为什么函数永远不会被解雇。
以下是我正在使用的引导程序下拉列表
<ul id="dropdown-id" class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1" style="width:100%;">
{{#if isLoadingSearch}}
<li role="presentation" style="padding:10px;">
<p class="lead">
Loading... please wait
</p>
</li>
{{else}}
{{#each serachUsers}}
<li role="presentation">
<a class="btn-link" {{action 'chooseEmail' this}}>
<p class="lead">
<img class="img-circle" {{bind-attr src=avatar}} alt="" height="50">
{{fullname}}
</p>
</a>
</li>
{{/each}}
{{/if}}
</ul>
通常应该调用chooseEmail函数。它在我用于标准表的所有循环中都有,但不知何故,这个下拉列表不会启动
该功能在内部操作和正确的控制器内部我不知道为什么这不起作用。
这是我的控制器代码
App.MyRoute = Ember.Route.extend({
// initial value
setupController: function(controller, context){
controller.reset();
}
});
App.MyController = Ember.Controller.extend({
reset: function(){
this.setProperties({
serachUsers:"",
isLoadingSearch:false,
});
},
actions :{
queryDB: function(){
$("#dropdown-id").dropdown('toggle');
var self = this;
if (self.get('sellerEmail')) {
var data = {'oauth_consumer_key':sessionStorage.access_token,'device_id':sessionStorage.device_id,'device_name':'web','query':self.get('sellerEmail')};
self.set('isLoadingSearch',true);
$.ajaxSetup({
contentType: "application/json; charset=utf-8",
dataType: "json",
});
$.post('/api/v1/user/search/',JSON.stringify(data)).then(function(response){
if (response.success) {
self.set('serachUsers',response.users);
self.set('isLoadingSearch',false);
};
});
};
},
chooseEmail: function(user){
alert('check');
var self = this;
self.set('sellerEmail',user.user_id);
$(".dropdown").removeClass("open");
},
},
});
所以,当我摆脱下拉列表时,它的工作正常,
{{#each serachUsers}}
<li role="presentation">
<a class="btn-link" {{action "chooseEmail" this}}>
<p class="lead">
<img class="img-circle" {{bind-attr src=avatar}} alt="" height="50">
{{fullname}}
</p>
</a>
</li>
{{/each}}
有什么想法吗?