Ember.js 余烬,根据条件禁用输入
我有一个余烬表单,我想根据用户禁用输入。 我从后端获得一个可修改字段数组 我如何让它与灰烬一起工作? 理想的情况是这样做Ember.js 余烬,根据条件禁用输入,ember.js,handlebars.js,ember-rails,Ember.js,Handlebars.js,Ember Rails,我有一个余烬表单,我想根据用户禁用输入。 我从后端获得一个可修改字段数组 我如何让它与灰烬一起工作? 理想的情况是这样做 {{input type="text" disabled=isModifiable("middleName") value=middleName}} 我知道那是不可能的。 对于余烬来说,这是一个全新的概念,建议将不胜感激。谢谢。在控制器或组件中定义如下属性: fields:[], loadFields : function(){ var that = this; $.g
{{input type="text" disabled=isModifiable("middleName") value=middleName}}
我知道那是不可能的。
对于余烬来说,这是一个全新的概念,建议将不胜感激。谢谢。在控制器或组件中定义如下属性:
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}}
在模板中使用该属性,如下所示:
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}}
谢谢,但我有大约20个不同的领域。我发现创建20个不同的方法名是多余的。无论如何,您可以创建一个自定义组件来扩展输入视图并获取fieldName参数。组件应该决定输入是否被禁用。{{custom input type=“text”fieldName=“middleName”value=middleName}}好的。如果我想对任何类型的输入执行此操作,该怎么办?那么选择框、日期选择器、文本区域等呢?Ember.js尊重关注点的分离(数据、逻辑和UI代码都位于不同的区域)。这就是为什么我建议对每个字段使用属性。不应在模板中实现逻辑。