angular.js:13550错误:[ngModel:nonassign]

时间:2016-05-10 08:02:44

标签: javascript angularjs

在我的JavaScript文件中:

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错误:[ngModel:nonassign]表达式'gem-type'是不可分配的。元素:<input type="text" ng-model="gem-type" class="ng-pristine ng-untouched ng-valid">

1 个答案:

答案 0 :(得分:2)

From error page

  

绑定ngModel指令的表达式时会发生此错误   一个不可赋值的表达式。不可分配表达式的示例   包括:

<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或任何有效 $array1 = array(); //put your value in this array $array2 = array(); //put your value in this array $array3 = array(); $array3[] = $array1; $array3[] = $array2; 的内容。

Working Demo