0
私は角度流星とイオンを使ってtodoアプリを開発しています。 私は入力とリストを持つビューを持っています。 編集をクリックすると、項目の名前が入力に表示され、それを編集してから適用します。 これまでのところすべてうまくいきましたが、変更を適用すると入力したテキストがそこに残ってしまい、別のtodoをクリックして編集するとそのタイトルは入力に表示されませんが、適用をクリックすると、変更されます。ここ角度流星:モデル値の変更はビューを変更しません
ビューのコードです:
<ion-view view-title="Task ongoing">
<ion-content>
<div class="item item-input-inset">
<label class="item item-input">
<input type="text" ng-model="n" placeholder="click on a task to edit it">
</label>
<button class="button button-balanced button-small"
style="margin:1%"
ng-click="editTask(n)">
<span class="glyphicon glyphicon-plus"></span> Apply</button>
</div>
<ion-item ng-repeat="t in todos | filter:'ongoing'">
{{t.name}} <strong>{{t.status}}</strong> <span class="badge" ng-click="enableEditTask(t)" >Edit</span>
<span class="badge" ng-click="makeTaskDone(t)" style="right: 67px" >Done</span>
</ion-item>
</ion-content>
</ion-view>
ここ
は、メソッドのコードは、サーバーである:
Meteor.methods({
makeDone:function(task){
Todos.update({_id:task._id},{$set:{status:'done'}});
},
editTask:function(name,task){
Todos.update({_id:task._id},{$set:{name:name}});
}
})
と、ここで、クライアント上のコード(角)
$scope.makeTaskDone=function(task){
Meteor.call('makeDone',task);
};
$scope.enableEditTask = function(task) {
$scope.task=task;
$scope.n=task.name;
};
$scope.editTask=function(name){
Meteor.call('editTask',name,$scope.task);
$scope.n="";
}
Todos.updateが呼び出された後で問題が起こると思います。
Ps:私は安全でないパッケージでこれを試しました。同じ問題が発生しました。