私はいくつかのフィールドを持っています。ユーザーが[キャンセル]ボタンを押して編集モードを解除することができます私のコントローラの私の機能は動作しますが、ビュー(Angularjs)は更新されません
<button ng-click="cancelEdit();" ng-show="editable">
<i class="fa fa-remove"></i> Cancel
</button>
イベント機能cancelEdit()
を呼び出すNGクリックします。この機能で
$scope.cancelEdit = function(){
$scope.editable=false;
$scope.jobNameInput = $scope.jobToView.name;
$scope.selectedPriority = $scope.jobToView.priority;
$scope.jobCommentsInput = $scope.jobToView.comments;
}
、私はfalseに編集モードのブール変数を設定し、(編集モードの前に)デフォルト値に私の入力の値を再初期化します。この関数は呼び出しされた後、値はなく、私の見解では、コントローラ用に更新されています
<button ng-click="editable=true;" ng-show="!editable">
<i class="fa fa-edit"></i> Edit
</button>
変数編集可能がfalseに設定されている場合、このボタンは表示されます。ですから、私がキャンセルボタンをクリックすると、理論的に、ボタンの編集が表示されなければなりません。なぜこれは当てはまりませんか?
'$ scope.jobNameInput'と他の値をビューにどのようにバインドしているかを表示できますか? $ scope.jobToView.nameの値は何ですか?あなたがスナップしたりplnkrを作ることができれば、それは素晴らしいことでしょう。だから私たちはあなたをより良く助けることができます。 – lealceldeiro
mmm ng-click = "editable = true;"を設定してください。ボタンではなく関数であるので、ng-click = "setEditTrue()"とし、$ scope.setEditTrue = function(){$ scope.editable = true; } –
編集可能な変数を$ scopeのプロパティではなく、オブジェクトのプロパティに置き換えてみてください:buttonEditable = {value:true};次に、あなたのhtlml:ng-click = "buttonEditable。value = true " –