Moi
Osaisiko joku opastaa oikeaan suuntaan, kun haluaisin käyttää https://github.com/ValYouW/jqPropertyGrid Leaflet kirjastolla luodun karttamerkin muokkaamiseen?
Alla omaa räpellystä, jonka olen saanut nyt siihen asti, että lomake aukeaa popupiin, mutta uudet arvot eivät päivity karttamerkkiin.
var geojsonLayer = new L.GeoJSON(feature, {
  onEachFeature: function (feature, layer) {
      console.log(feature.properties);
      var cb = function (grid, name, value){
        console.log('cb',grid,name,value);
        feature.properties[name] = value;
      }
      var editor = L.DomUtil.create('div', 'featurePropertyGrid');
      editorGrid = $(editor);
      $(editorGrid).jqPropertyGrid(feature.properties, {callback: cb, meta: theMeta});
      layer.bindPopup(editorGrid[0]);
      layer.bindTooltip(feature.properties.name);
  }
}).addTo(map);Ilmeisesti päivittyneet arvot pitäisi erikseen noutaa:
var theNewObj = $('#propGrid').jqPropertyGrid('get');jotta ne voi asettaa. Ideoita, että miten tuon toteuttaisi?
Lisäsin tuon tooltip toiminnon, jotta voisin helposti todeta arvojen tilan.
Method bindPopup(<String|HTMLElement|Function|Popup> content, <Popup options> options?) Returns this Description Binds a popup to the layer with the passed content and sets up the necessary event listeners. If a Function is passed it will receive the layer as the first argument and should return a String or HTMLElement.
Lisäys:
Viimeisin versio kaatuu jqPropertyGrid('get') kutsun myötä virheeseen:
Error: cannot call methods on spinner prior to initialization; attempted to call method 'value'
var geojsonLayer = new L.GeoJSON(feature, {
  onEachFeature: function (feature, layer) {
      function cb(grid, name, value){
        console.log('cb',grid,name,value);
      }
      var editor = L.DomUtil.create('div', 'featurePropertyGrid');
      editorGrid = $(editor);
      $(editorGrid).jqPropertyGrid(feature.properties, {callback: cb, meta: theMeta});
      $('.pgCell > input', editorGrid).change(function(evt){
          console.log(JSON.stringify($(this).closest('div.featurePropertyGrid').jqPropertyGrid('get'), null, '\t'));
      });
      layer.bindPopup(editorGrid[0]);
      layer.bindTooltip(feature.properties.name);
  }
}).addTo(map);Aihe on jo aika vanha, joten et voi enää vastata siihen.