¿Cuál es la diferencia entre usar la función y usar la expresión en línea para establecer la variable de alcance

Encontré algunas diferencias entre ejecutar la función y usar la expresión para establecer la variable, específicamente, parece queng-if no puede detectar los cambios realizados por expresión. No entiendo por qué.

Pseudocódigo:

if($scope.editingProfile)
  display edit section
click(backToList button)
  hide edit section

El botón backToList tiene unng-click atributo, cuando escribong-click="backToList()" ejecutar$scope.backToList() en el que la$scope.editingProfile se establece en falso, funciona bien. Pero cuando escribong-click="editingProfile=false" para establecer la variable directamente, elng-if usado para ocultar la sección no funcionará.

violín:http://jsfiddle.net/brfbtbd7/1/

Respuestas a la pregunta(1)

Su respuesta a la pregunta