Skip to content
This repository has been archived by the owner on Nov 2, 2020. It is now read-only.

Editor doesn't allow keys which start with $ #2

Open
jusio opened this issue Sep 16, 2013 · 4 comments
Open

Editor doesn't allow keys which start with $ #2

jusio opened this issue Sep 16, 2013 · 4 comments

Comments

@jusio
Copy link

jusio commented Sep 16, 2013

screen shot 2013-09-16 at 10 15 33 pm

@mb21
Copy link
Owner

mb21 commented Sep 17, 2013

This is because AngularJS stores some hidden values with the $-prefix. But it would certainly be possible to prefix all our stuff with, say, _ (so that $asdf is encoded as _$asdf) and then go back and forth between these representations. Pull requests are welcome :)

@mb21 mb21 closed this as completed Sep 17, 2013
@mb21 mb21 reopened this Sep 17, 2013
@jusio
Copy link
Author

jusio commented Sep 17, 2013

Well the only bulletproof (and relatively painless), to deal with problem in my opnion, is not use object structure as model, but create a special model for working with json. E.g after json is parsed, object is not passed into the scope, but is transformed to the following form:

 {
  properties:[{name:"stringProp": value:"stringValue"},
                  {name:"arrayProp": value:[{properties:[]},"stringItem",1]  }
  ]   
}

Such model corresponds to the following JSON

{
   "stringProp":"stringValue",
   "arrayProp":[{},"stringItem",1]
}

If you pass such model into scope, it doesn't matter which keys angular adds later, because you interested only in specific keys. You can use also some escaping, but i believe it is way too error prone.

@mb21
Copy link
Owner

mb21 commented Sep 17, 2013

What's so error prone about this: prefixing each key with a _ when reading from the text area, removing the first char (i.e. the _) when writing back from the Angular model to the textarea.

@jusio
Copy link
Author

jusio commented Sep 17, 2013

Well I think it is simply cleaner, since you don't have to always remember that correct keys should have '_' prefix (at least you have to add it in key name editor/render, may be there some other places).

But the is definitely choice is yours, I'm just suggesting since I had to do something similar in the past, tried to use escaping at first, then I said screw it, and just implemented using special model structure and in the end it was much easier.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants