2016-05-10 3 views
1

В моем файле JavaScript:angular.js: 13550 Ошибка: [ngModel: nonassign]

var app=angular.module("isolateScope",[]); 
app.controller("attrScope",["$scope",function($scope){ 
    $scope.gem="ruby";  
}]); 
app.directive("diffScope",function(){ 
    return{ 
     scope:{ 
      gemType:'@', 
      twoWay:'=', 
     }, 
     //template:'@scope:<input type="text" ng-model="gemType"/><br/><label>=Scope</label><input type="text" ng-model="twoWay"/>' 
    } 
}); 

В моем HTML:

<div ng-controller="attrScope"> 
     <input type="text" ng-model="gem" /> 
     <div class="panel-group"> 
      <diff-scope gem-type="{{gem}}" two-way="gem"> 
       @scope:<input type="text" ng-model="gem-type"/><br/><label>=Scope</label><input type="text" ng-model="twoWay"/> 
       </diff-scope> 
     </div> 
    </div> 

я получил ошибку:

angular.js:13550 Error: [ngModel: nonassign] Expression 'gem-type' is non-assignable. Element: <input type="text" ng-model="gem-type" class="ng-pristine ng-untouched ng-valid">

+0

какой тип драгоценного камня? –

+0

Вы не можете использовать 'gemType' с' ng-model', так как 'gemType' является атрибутом привязки oneway – Satpal

+0

@SatejS gem type - это просто атрибут изолировать область для доступа к gem –

ответ

2

From error page

This error occurs when expression the ngModel directive is bound to is a non-assignable expression. Examples of non-assignable expressions include:

<input ng-model="foo + bar"> 
<input ng-model="42"> 
<input ng-model="'oops'"> 
<input ng-model="myFunc()"> 

В вашем коде вы использовали ng-model="gem-type", недопустимый синтаксис для ng-model. Используйте что-то вроде ng-model="gType" или любого действительного ng-model.

Working Demo

+0

Правильно, но текстовые поля не обновляются. у вас есть какое-то решение для этого? –

+0

@PradhabanNandhakumar это другой вопрос. Я опубликовал решение проблемы, о которой вы упомянули. Во всяком случае, вы хотите, чтобы 'gemType: '@'' был заполнен в текстовом поле? –

+0

Да, это так. Любая идея, как этого достичь? –

Смежные вопросы