2017-08-03 9 views
0

私は他のものに基づいてプロパティを返す2つの角度関数を持っています。これは、プロパティを連結するだけではうまく動作しますが、「割り当て不可能な式」エラーが表示されます。私は工場を呼び出すときに何も返しません。角度1割り当て不可能な式

ケース1 - 作品(しかし、非アサイナブル式のエラーがスローされます)

HTML

<input type="text" class="form-control" id="inputClearCasePassword" ng-model="clearCasePassword()" readonly> 

角度コントローラ

$scope.clearCasePassword = function(){ 
    return $scope.model.property1 + $scope.today + $filter('uppercase')($scope.model.property2); 
} 

ケース2 - エラー

のHTMLを返します。

<input type="text" class="form-control" id="inputencryptedPassword" ng-model="encryptedPassword()" readonly> 

角度コントローラ

$scope.encryptedPassword = function(){ 
    return encryptionRepository.HMACSHA1($scope.clearCasePassword, $scope.model.encryptionKey); 
} 

、ここでは、工場出荷時は次のようになります。

app.factory('encryptionRepository', function() { 
    return { 
    HMACSHA1: function(text, key) { 
     var encrypted = CryptoJS.HmacSHA1(text, key); 
     return CryptoJS.enc.Hex.stringify(encrypted); 
    } 
    }; 
}); 
+0

この '' – blewherself

+0

のようなng-model属性の角括弧を削除しようとしています。同じことをする。ちょうどエラーが実際には最初の例に気づいた。エラーはスローされますが、正しいレスポンス(連結文字列)は表示されますが、2番目のものは何もしません – GrahamJRoy

+0

[Angular docs](https://docs.angularjs.org/error/$compile/nonassign)を見れば、 'ng-model'の割り当てで – blewherself

答えて

0

ng-modelは、オブジェクト属性である必要があり、それは表現することはできません。入力を編集すると、あなたの価値を保存する場所を想像してみてください。あなたが必要なもの

は、最初の属性に値を代入した後、私はあなたが入力にreadonlyを使用している参照して[OK]をng-model

$scope.password = value1 + value2 + value3; 
<input ng-model="password" /> 

で使用されます。この場合、ng-modelの代わりにng-valueを使用できます。

関連する問題