0

I am generating dynamic form based on angularjs and semantic-ui, the problem that anglers have a problem when parsing some French letter for example "français"

Lexer Error: Unexpected next character at columns 29-29 [ç] in expression [{'error' : (categoryForm.Français.$dirty && categoryForm.Français.$invalid)}].

the form was dynamically generated based on data loaded from server side :

   <div class="two fields" data-ng-repeat="lang in category.languages">
                <div class="field width_80"
                     data-ng-class="{'error' : (categoryForm.{{lang.languageName}}.$dirty && categoryForm.{{lang.languageName}}.$invalid)}">
                    <label data-ng-bind="lang.languageName"></label>

                    <div class="ui labeled icon left input">
                        <input type="text" name="{{lang.languageName}}" data-ng-model="lang.name" required
                               data-ng-minlength="3"/>
                        <i class="font icon"
                           data-ng-class="{'red' : (categoryForm.{{lang.languageName}}.$dirty && categoryForm.{{lang.languageName}}.$invalid)}"></i>
                    </div>
                    <div class="ui red pointing label transition"
                         data-ng-show="categoryForm.{{lang.languageName}}.$dirty && categoryForm.{{lang.languageName}}.$error.required">
                        {{'error.required' | i18n }}
                    </div>
                    <div class="ui red pointing label transition"
                         data-ng-show="categoryForm.{{lang.languageName}}.$dirty && categoryForm.{{lang.languageName}}.$error.minlength">
                        {{'error.minlength' | i18n }} 3 {{'error.digit' | i18n}}s
                    </div>
                </div> ... 

how could I escape some letter in dynamic generation

ziedTn
  • 262
  • 5
  • 17
  • 1
    Instead of `categoryForm.{{lang.languageName}}.$invalid` can you try `categoryForm[lang.languageName].$invalid`? – Nikos Paraskevopoulos Apr 17 '14 at 11:12
  • No it doesn't work, angular does not parse the expression. – ziedTn Apr 17 '14 at 11:23
  • I find it strange, the `[...]` should be the way to go. A fiddle would clarify things, if you can reproduce it. – Nikos Paraskevopoulos Apr 17 '14 at 11:34
  • hi, this the fiddle example http://jsfiddle.net/uffJ6/ – ziedTn Apr 17 '14 at 13:36
  • Be careful: `categoryForm.[lang.languageName].$invalid` (in your fiddle) is not `categoryForm[lang.languageName].$invalid` (like my comment) - note the extra dot. – Nikos Paraskevopoulos Apr 17 '14 at 15:34
  • thank you I have changed it like you have mentioned, but the problem still exists anglers doesn't parse the expression. for my first work, angular parses the expression but it breaks down because it can't parse special characters "ç" – ziedTn Apr 18 '14 at 08:28

1 Answers1

0

I have found the answer, first of all the problem of "Français" was resolve using brackets annotation categoryForm [Lang. languageName]. $invalid instead of categoryForm. {{Lang. languageName}}.$invalid thanks to Nikos Paraskevopoulos.

the second problem was the dynamic generation of input name that I have the answer she dynamic input name generatrion

Community
  • 1
  • 1
ziedTn
  • 262
  • 5
  • 17