В приведенном ниже списке задач вы можете добавить элемент, нажав синюю кнопку добавления и удалить отмеченные элементы кнопкой удаления.Переключение между контроллерами, невозможно обновить вид
Однако, как только вы удаляете любые предметы, добавление элементов не обновляет представление. Я подозреваю, что моя проблема заключается в том, что у двух контроллеров есть доступ к переменной todos
.
(function(){
'use strict';
angular.module('todoApp', ['ngMaterial', 'ngAnimate', 'ngAria' ])
.directive('mainApp', function(){
return {
restrict: 'E',
templateUrl: 'app.html',
controller: function($scope, $mdDialog){
$scope.todos = todos;
$scope.someCompleted = function(){
for (var i = 0; i < $scope.todos.length; i++) {
if ($scope.todos[i].done === true) {
return true;
}
}
};
$scope.clearCompleted = function(){
$scope.todos = $scope.todos.filter(function(item){
return !item.done;
});
};
$scope.showAdvanced = function(ev) {
$mdDialog.show({
controller: DialogController,
templateUrl: 'addDialog.html',
targetEvent: ev,
});
};
},
controlerAs: 'list'
};
})
;
function DialogController($scope, $mdDialog) {
$scope.todos = todos;
$scope.hide = function() {
$mdDialog.hide();
};
$scope.cancel = function() {
$mdDialog.cancel();
};
$scope.answer = function(answer) {
$mdDialog.hide(answer);
};
$scope.addTodo = function(){
$scope.todos.push({name: $scope.newTodo, done: false});
$scope.newTodo = null;
$mdDialog.hide();
};
}
var todos = [];
})();