在我的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">
答案 0 :(得分:2)
绑定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;
的内容。