7

私は editMessage.js コンストラクターを次のように持っています:

 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 (ビュー) は次のとおりです。

<li class="list-group-item" repeat.for="p of messageProperties">
   <div if.bind="p.propertyType == 'string'">
    <div class="form-group">
       <label for="ln1">Name: ${p.propertyName}</label>
       <input type="text" value.bind="p.propertyValue" class="form-control" id="ln1" >
    </div>
  </div>
  <div if.bind="p.propertyType == 'integer'">
    <div class="form-group">
       <label for="ln2">Name: ${p.propertyName}</label>
       <input type="text" value.bind="p.selectedValue" class="form-control" id="ln2" >
      <select-picker selectable-values.bind="p.selectableValues" selected-value.two-way="p.selectedValue"></select-picker>
   </div>
  </div>
  <div if.bind="p.propertyType == 'image'">
    <div class="form-group, message-border">
      <div class="message-property-name">
       Name: ${p.propertyName}
       <input type="text" value.bind="p.propertyValue" id="ln3" >
      </div>
      <image-picker selected-file.two-way="p.selectedFile" original-image.two-way="p.originalImage" element-name.bind="p.elementName"></image-picker>
    </div>    
  </div>
  <div if.bind="p.propertyType == 'color'">
    <div class="form-group">
       <label for="ln3">Name: ${p.propertyName}</label>
       <input type="text" value.bind="p.propertyValue" class="form-control" id="ln3" >
       <color-picker element-name.bind="p.elementName" initial-color.bind="p.propertyValue"></color-picker>
    </div>    
  </div>
</li>   

メッセージ*プロパティオブジェクトのいずれかが変更された場合に有効になり、それ以外の場合は無効のままになるように、保存ボタンが必要です。

過去に、タイマーを作成し、元の値と変更された値を比較して、いくつかのダーティ チェックを行いました。これを行うための Aurelia の最善のアプローチは何ですか?

4

1 に答える 1