Ember,根据条件禁用输入

时间:2015-02-14 15:15:19

标签: ember.js handlebars.js ember-rails

我有一个Ember表单,我想根据用户禁用输入。 我从后端获得了一系列可修改的字段。

如何让这与Ember合作? 理想的情况是这样做,

{{input type="text" disabled=isModifiable("middleName") value=middleName}}

我知道这是不可能的。 相当新的Ember,建议将不胜感激。感谢。

1 个答案:

答案 0 :(得分:1)

在Controller或Component中定义一个属性,如下所示:

fields:[],
loadFields : function(){
 var that = this;
 $.get(FIELDS_API).done(function(serverResponse){
    //process server response in an array with objects with this form:
    // [ field:"middleName", isDisabled:true}]

   that.set("fields",fieldsArray);
 })
}
isModifiable : function(fieldName){
 var field = this.get("fields").findBy("field",fieldName);
 return (field) ? field.isDisabled: false;
},
isMiddleNameInputDisabled : function(){
    return this.isModifiable("middleName");
}.property("fields.@each")

在模板中使用该属性,如下所示:

{{input type="text" disabled=isMiddleNameInputDisabled  value=middleName}}