Javascript fancybox.update()不工作
我有一个fancybox来管理用户。现在我定义了一个函数来将用户设置为主用户。以下是模板:Javascript fancybox.update()不工作,javascript,jquery,ember.js,fancybox,Javascript,Jquery,Ember.js,Fancybox,我有一个fancybox来管理用户。现在我定义了一个函数来将用户设置为主用户。以下是模板: <ul class="user-list"> {{#each inquiry.users as |user|}} <li> {{user.email}} {{#if (isEqual user.id createdBy)}}<span> (primary) </span>
<ul class="user-list">
{{#each inquiry.users as |user|}}
<li>
{{user.email}}
{{#if (isEqual user.id createdBy)}}<span> (primary) </span>
{{else}} <button type="button" class="pretty small btn" {{action 'setPrimary' user}}>Set to Primary</button>
{{/if}}
<div class="pretty small danger btn icon-right entypo icon-cancel" {{action 'removeUser' user}}><a href="#">remove</a></div>
</li>
{{/each}}
</ul>
您可以看到,isEqual辅助对象中的createdBy是一个计算属性。如果用户id等于查询创建的人员id,则该用户是主要用户。或者您可以将用户设置为主要用户,这会触发一个操作,将查询的创建的
设置为当前用户的id。我使用$.fancybox.update()
重新呈现内容,但当我单击设置为主要
按钮时,没有任何更改。有人能告诉我哪部分错了吗?我是否应该使用observer而不是computed属性作为createdBy
属性?使用$.fancybox.update
方法的作用是自动调整fancybox高度以匹配内容的高度
。。。所以问题是:当你按下设为主按钮时,你的内容真的会改变吗?(假设此按钮是已打开的fancybox内容的一部分)。。。或者我应该问一下,你真的明白$.fancybox.update
方法的作用吗?(这不是为了重新呈现内容或任何内容)嗨,JFK,谢谢你帮助我清除$.fancybox.update
的用法。我假设它将重新呈现内容。好的,这就是为什么我必须刷新页面才能看到更改的原因。你知道如何解决这个问题吗?任何想法都会有帮助!谢谢。我最终解决了这个问题,添加了一个观测者,即computed属性createdBy
,无论您单击哪个用户将其设置为主要用户,结果都会立即显示createdByChanged:function(){this.set('createdBy',this.get('inquiry.created_by'));}.observes('inquiry.created_by')
createdBy: function() {
return this.get('inquiry.created_by');
}.property('inquiry'),
actions: {
setPrimary: function(user){
var inquiry = this.get('inquiry');
var userId = user.get('id');
inquiry.set('created_by', userId);
inquiry.save();
$.fancybox.update();
}
}