Cannot create property on string angularjs
<p>I'm getting form from api request, some of this fields based on ng-options. The data for options comes from angular services. So on the page it looks like: 
 after form has been opened:</p>

<ol>
<li>depends on key, fields can be:

<ul>
<li>disabled for modifications</li>
<li>enabled for modifications</li>
</ul></li>
<li>enabled for modifications fields can be:

<ul>
<li>with simple input</li>
<li>with options</li>
</ul></li>
</ol>

<p>For now everything is good, form has been opened and rendered. Now if I want to modify something, simple input fields can be modified without any problem, and can be changed in db, but if I want to modified options fields, I'm getting this errors:</p>

<p>for priority:</p>

<blockquote>
  <p>Cannot create property 'priorityId' on string 'priority'</p>
</blockquote>

<p>for severity:</p>

<blockquote>
  <p>Cannot create property 'severityId' on string 'severity'</p>
</blockquote>

<p>for status:</p>

<blockquote>
  <p>Cannot create property 'statusId' on string 'status'</p>
</blockquote>

<p>Where is my mistake? this is <a href="https://plnkr.co/edit/SccT3wcDIwgN7ymLeDwB?p=preview" rel="nofollow"><strong>plunker</strong></a></p>

<p>my services</p>

<pre><code>    (function () {

    angular.module("app").factory("eventService", ["$http", "$q", "$log",
        function ($http, $q, $log) {

            var severityOptionsFunc = [
                {
                    name: "Benign",
                    id: 4,
                    labelStyle: "label-danger"
                },
                {
                    name: "Severe",
                    id: 3,
                    labelStyle: "label-warning"
                },
                {
                    name: "Medium",
                    id: 2,
                    labelStyle: "label-info"
                },
                {
                    name: "Mild",
                    id: 1,
                    labelStyle: "label-success"
                }
            ];
            var  priorityOptionsFunc = [
                {
                    name: "High",
                    id: 3,
                    labelStyle: "label-warning"
                },
                {
                    name: "Medium",
                    id: 2,
                    labelStyle: "label-info"
                },
                {
                    name: "Low",
                    id: 1,
                    labelStyle: "label-success"
                }
            ];
            var  statusOptionsFunc = [
                {
                    name: "Open",
                    id: 1,
                    labelStyle: "label-info"
                },
                {
                    name: "Closed",
                    id: 5,
                    labelStyle: "label-success"
                }
            ];



            var statusOptions = function () {
                return statusOptionsFunc;
        };
        var priorityOptions = function () {
                return priorityOptionsFunc;
        };
        var severityOptions = function () {
                return severityOptionsFunc;
        };


        var findById = function (id, list) {
            var i=0, len=list.length;
            for (; i&lt;len; i++) {
              if (list[i].id == id) {
                 return list[i];
              }
            }
            return {};
    };

        var toName = function (id, list) {
            var i=0, len=list.length;
            for (; i&lt;len; i++) {
              if (list[i].id == id) {
                 return list[i].name;
              }
            }
        return id
    };
        return {
            statusOptions: statusOptions,
            priorityOptions: priorityOptions,
            severityOptions: severityOptions,


            toName: toName,
            findById: findById
        };
    }]);

}());
</code></pre>

<p>html </p>

<pre><code>     &lt;div ng-repeat="k in rowKeys | filter: '!0' | filter: '!$$'" ng-model="rowVal" &gt;
&lt;div ng-if="(k === 'id' || k.toLowerCase().endsWith('id') === false) ? true : false"&gt;

    &lt;label for="rowValue[{{$index}}]" class="col-sm-2"&gt;

        {{k | hide:'.name' | makeUppercase }}:
    &lt;/label&gt;
    &lt;div class=" col-sm-2"&gt;
        &lt;input ng-if="!isObject(rowData[k])"
               ng-disabled="disableInput(k)"
               class="form-control rowValue"
               id="rowValue[{{$index}}]"
               ng-model="rowData[k]"/&gt;

        &lt;input ng-if="isObject(rowData[k]) &amp;&amp; k !== 'status' &amp;&amp; k !== 'priority' &amp;&amp; k !== 'severity' "
               ng-disabled="disableInput(k)"
               class="form-control rowValue"
               id="rowValue[{{$index}}]"
               ng-model="rowData[k].name"/&gt;

        &lt;select ng-if="isObject(rowData[k]) &amp;&amp; k == 'status'"
                ng-model="k.statusId"
                class="form-control rowValue"
                id="statusId"
                ng-options='item.id as item.name for item in eventService.statusOptions()' &gt;
            &lt;option value=''&gt;{{rowData[k].name}}&lt;/option&gt;
        &lt;/select&gt;
        &lt;select ng-if="isObject(rowData[k]) &amp;&amp; k == 'priority'"
                ng-model="k.priorityId"
                class="form-control rowValue"
                id="priorityId"
                ng-options='item.id as item.name for item in eventService.priorityOptions()' &gt;
            &lt;option value=''&gt;{{rowData[k].name}}&lt;/option&gt;
        &lt;/select&gt;
        &lt;select ng-if="isObject(rowData[k]) &amp;&amp; k == 'severity'"
                ng-model="k.severityId"
                class="form-control rowValue"
                id="severityId"
                ng-options='item.id as item.name for item in eventService.severityOptions()' &gt;
            &lt;option value=''&gt;{{rowData[k].name}}&lt;/option&gt;
        &lt;/select&gt;
    &lt;/div&gt;
&lt;/div&gt;
     &lt;/div&gt;
     &lt;/div&gt;
</code></pre>