2

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

如何让它与 Ember 一起使用?理想的情况是这样做,

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

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

4

1 回答 1

1

在控制器或组件中定义一个属性,如下所示:

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}}
于 2015-02-14T16:08:20.977 回答