我有这个链接到将根据属性" linkDisabled"启用/禁用。最初该属性为true,此链接将被禁用。
{{#link-to "databinding2" disabled=linkDisabled}}Databinding2{{/link-to}}
每当我点击此按钮时,我想切换禁用和启用之间的链接,而不重新加载任何组件。
<button {{action 'changeLinkState'}} >Click here</button>
这就是我想在控制器中处理它的方式。
App.ApplicationController=Ember.Controller.extend({
linkDisabled:true,
actions:{
changeLinkState:function(){
if(this.linkDisabled==true)
{
this.linkDisabled=false;
}
else
{
this.linkDisabled=true;
}
}
}
});
是否可以在不进行异步调用的情况下这样做?
由于属性linkDisabled正在{{#link-to}}中使用,因此,当我尝试将其修改为true或false时,它会抛出错误。
Uncaught Error: Assertion Failed: You must use Ember.set() to set the `linkDisabled` property (of <App.ApplicationController:ember294>) to `false`.
做正确的方法是什么?
答案 0 :(得分:4)
截至Ember 3. *方法是:
{{!-- Statically --}}
{{link-to 'photoGallery' disabled=true}}
{{!-- Dynamically --}}
{{link-to 'photoGallery' disabledWhen=controller.someProperty}}
答案 1 :(得分:2)
如果你坚持使用set / get:
Ember.set(this, 'linkDisabled', !(Ember.get(this, 'linkDisabled')));
但我建议您使用Ember.Object.toggleProperty()
,API link here,尝试类似:
this.toggleProperty('linkDisabled');