在具有复杂域对象的Aurelia中,启用和禁用保存按钮的最佳方法是什么?
我将editMessage.js构造函数设置为:在具有复杂域对象的Aurelia中,启用和禁用保存按钮的最佳方法是什么?,aurelia,Aurelia,我将editMessage.js构造函数设置为: constructor(){ var messageStringProperty1 = new messageStringProperty(); messageStringProperty1.propertyName = 'title'; messageStringProperty1.propertyValue = 'This is the menu for school campus'; this.messageProper
constructor(){
var messageStringProperty1 = new messageStringProperty();
messageStringProperty1.propertyName = 'title';
messageStringProperty1.propertyValue = 'This is the menu for school campus';
this.messageProperties[0] = messageStringProperty1;
var messageIntegerProperty1 = new messageIntegerProperty();
messageIntegerProperty1.propertyName = 'Menu Title Font Size';
messageIntegerProperty1.selectedValue = 30;
messageIntegerProperty1.selectableValues = [10, 12, 14, 30]
this.messageProperties[1] = messageIntegerProperty1;
var messageImageProperty1 = new messageImageProperty();
messageImageProperty1.propertyName = 'Background Image';
messageImageProperty1.elementName = 'BackgroundImage';
messageImageProperty1.originalImage = "http://i2.wp.com/ejohn.org/files/Timers.png";
this.messageProperties[2] = messageImageProperty1;
var messageColorProperty1 = new messageColorProperty();
messageColorProperty1.propertyName = 'Title Color';
messageColorProperty1.propertyValue = '#ffffff';
messageColorProperty1.elementName = 'TitleColor';
this.messageProperties[3] = messageColorProperty1;
}
而editMessage.html(视图)是:
名称:${p.propertyName}
名称:${p.propertyName}
名称:${p.propertyName}
名称:${p.propertyName}
我希望有一个保存按钮,这样,如果我的任何message*属性对象发生更改,它将启用,否则它将保持禁用状态
在过去,我创建了一个计时器,并通过比较原始值和更改的值来执行一些脏检查。Aurelia的最佳方法是什么?多亏了zewa66,我复制了与之相同的方法。我所做的是在每个业务对象message*属性上创建一个hasPropertyChanged方法 例如,关于messageStringProperty,我有:
get propertyHasChanged(){
return this.originalValue != this.propertyValue;
}
那么,关于主要观点,我有:
get canSave(){
for (var i=0; i< this.messageProperties.length; i++){
if (this.messageProperties[i].propertyHasChanged){
return true;
}
}
return false;
}
get-canSave(){
for(var i=0;i
我们认为:
<button class="btn btn-success" click.trigger="saveChanges()"
disabled.bind="!canSave">Save Changes</button>
保存更改
您应该看看Contacts应用程序示例,它使用了与您希望实现的类似的方法
<button class="btn btn-success" click.trigger="saveChanges()"
disabled.bind="!canSave">Save Changes</button>