Ghost Binding - Perspective

This happened in table.

At first I had a binding inside an item inside column prop.
Then, without removing the binding inside that item, I create a binding at column that is return [].
Finally I removed the binding at column prop and the result is that blue flag showing there is a binding in the prop. That is not true since a don’t longer have it, in fact there is not any item inside.

How to solve this?

Shift + right click the view and you can ‘Copy JSON’ - you can see if there’s anything unusual in the propConfig section.

yup, it shows something while there nothing is showing in the designer.

 "meta": {
          "name": "table"
        },
        "position": {
          "basis": "300px",
          "grow": 1
        },
        "propConfig": {
          "props.columns[10].dateFormat": {
            "binding": {
              "config": {
                "path": "session.custom.locale.date"
              },
              "type": "property"
            }
          },
          "props.columns[11].dateFormat": {
            "binding": {
              "config": {
                "path": "session.custom.locale.date"
              },
              "type": "property"
            }
          },

col 10 and 11.

UPDATE:
Adding elements to the array until reaching the original size, restored the bindings automatically :thinking: Good, I think.

Probably the easiest fix would be to remove both of those entries under propConfig, then shift → right click and paste the JSON to replace the existing content.

Doesn’t explain how you got into that state in the first place, but :man_shrugging:

1 Like

What happens if you add an array item manually and then delete it? that’s what I do when weird things like this happen and I think it fixes it

No, if you delete the item the binding gets removed.

Right, but placing a binding on a child element and then placing a binding on a parent of that child which removes the child based on the return would result in an orphaned binding. Once the parent binding returns a child at the expected address the binding should once again be in place and working.

1 Like

Thanks for explaining.
In this case, the orphaned binding persisted even after the parent lose its binding as well.
I will make sure to remove bindings at child before altering the parent.

Correct, because the binding still exists in the propConfig, waiting for the child at the addressed property to return.