Ember, отключить ввод в зависимости от условия

У меня есть форма Ember, где я хочу отключить ввод на основе пользователя. Я получаю массив модифицируемых полей из моего бэкенда.

Как мне заставить это работать с Ember? Идеальным сценарием было бы сделать это,

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

Я знаю, что это невозможно. Довольно плохо знаком с Эмбер, совет будет принята с благодарностью. Благодарю.

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}}
Другие вопросы по тегам