Como atualizar componentes filho da lista atualizada de pais

Eu sou novo no Angular e atualmente estou usando a versão 1.6.

Estou implementando o estilo de componente do Angular. Eu só quero perguntar qual é a melhor maneira de se comunicar dos componentes pai para filho? Sei que há uma pergunta existente, mas tenho um cenário específico (não tenho certeza se é único ou não).

Aqui está o cenário:

Modal -> criar novo todo -> pai (atualizar o objeto) -> todo pessoal (atualizar a lista)

Eu tenho um modal para criar todo.Depois de criar um novo todo, passe o valor ao pai para atualizar o objeto de todo.E quando eu atualizei a lista pai de todas as tarefas, passe para os componentes pessoais de tarefas para atualizar a lista na exibição.
  angular.module('tab')
    .controller('TabController', TabController);

  function TabController() {
    let vm = this;
    let updatedTodoObject = {};

    vm.$onInit = function () {
      vm.personalTodo = vm.todo.own_todo;
      vm.externalTodo = vm.todo.external_todo;
    }

    vm.$onChanges = function (changes) {
      console.log('I\'m triggered');
    }

    vm.updateTodoList  = updateTodoList;

   function updateTodoList( result ) {
    updatedTodoObject = angular.copy(vm.todo);
    updatedProjectObject.user_todos.push(result)
    if( vm.todo !== updatedTodoObject) {
     vm.todo = updatedTodoObject;
    } else {
     console.log("Still in reference");
    }
   }

    vm.getUpdatedTodotList = function( ) {
      return vm.todo;
    }
  }
angular.module('...')
    .component('...', {
      bindings: {
        onResultTodoUpdated: '&'
      },
      controllerAs: 'todo',
      controller: ['TodoService', '$log', '$state', function(TodoService, $log, $state) {
        let vm = this;
        let todo = {};

        vm.newTodoModal = function() {
          TodoService.newTodoModal()
            .then(function (TodoName) {
              TodoService.createTodo(TodoName)
                .then(function(response) {
                  if( response.status === 201 ) {

                    todo = {
                      ...
                      ...
                    }

                    vm.onResultTodoUpdated( { result: todo } );
                  }
                })
                .catch(function(error) {
                  console.log(error);
                });
  angular.module('...')
    .component('...', {
      bindings: {
        todos: "<"
      },
      controllerAs: 'personal',
      controller: function(){
        let vm = this;
        vm.isShowTodoArchived = false;

        vm.$onInit = function () {
          getWatchedTodo();
        }

        function getWatchedTodo () {
         vm.todos = vm.todos;
         vm.todosSize = vm.todos.length;
        }

Minha pergunta novamente é como posso passar os dados atualizados depois de criar para o componente filho que é responsável por exibir a lista de tarefas?

ATUALIZADA

<div class="tab-pane active" id="todosTab">
  <nv-new-todo on-result-todo-updated="todo.updateTodoList(result)"></nv-new-project>

  <div class="my-todos">
    <nv-personal-todo todos="todo.personalTodo" ></nv-personal-todo>
    <nv-external-todo todos="todo.externalTodo"></nv-external-todo>
  </div>
</div>

questionAnswers(1)

yourAnswerToTheQuestion