モーダル ウィンドウを使用しようとしています ( http://angular-ui.github.io/bootstrap/を参照)。
親コントローラーには、次の機能があります。
$scope.open = function () {
var modalInstance = $modal.open({
templateUrl: 'myModalContent.html',
controller: ModalInstanceCtrl,
resolve: {
year: function () {
return $scope.year.value;
},
month: function () {
return $scope.month;
},
day: function () {
return $scope.day.name;
},
todos: function () {
return $scope.day.toDoItems;
}
},
backdrop: 'static'
});
modalInstance.result.then(function (todos) {
angular.forEach(todos, function (todo) {
if (todo.New)
$scope.day.toDoItems.push(todo);
});
}, function () {
$log.info('Modal dismissed at: ' + new Date());
});
};
また、モーダル コントローラーには addTodo 関数があります。
var ModalInstanceCtrl = function ($scope, $modalInstance, year, month, day, todos) {
...
$scope.todos = todos;
$scope.addTodo = function () {
$scope.todos.push({ TodoText: $scope.todoText.value, Done: false, Del: false, Date: new Date(year, month, day), Priority: 1, New: true});
$scope.todoText.value = "";
};
...
$scope.ok = function () {
$modalInstance.close($scope.todos);
};
};
親ビューには、todos
日ごとのカレンダーが表示されます。日のヘッダーをクリックすると、モーダル ウィンドウが開き、ToDo を追加できます。私の問題は、モーダル ウィンドウに todo をtodos
追加すると、同時に親ビューにも追加されることです。現在、todos
親ビューに 2 回追加されています。1 回はモーダル ビューに追加され、1 回はモーダル ビューで [OK] をクリックします。todos
しかし、モーダル ビューで [OK] をクリックしたときにのみ、項目を親ビューに追加したいと考えています。
これに対する解決策はありますか?前もって感謝します!
Plunker でその仕組みを確認できます: http://plnkr.co/edit/Nr1h7K3WZyWlRlrwzhM3?p=info