Итак, я читаю книгу на AngularJS, а в разделе о обещаниях есть два шаблона кода, как показано ниже. Говорят, что используют первый метод, а не последний, но они не могут объяснить, почему. В обоих случаях необходимо отобразить разрешенное обещание, но я не понимаю, почему он работает, а другой нет.Почему одно из этих двух обещаний не обновляет DOM, как ожидалось?
<h1>Hello, {{name}}!</h1>
И код в контроллере:
$scope.name = $timeout(function() {
return "World";
}, 2000);
против
<h1>Hello, {{getName()}}!</h1>
И следующий код в контроллере:
$scope.getName = function() {
return $timeout(function() {
return "World";
}, 2000);
};
Совет из этого примера:
Мы советуем не публиковать обещания непосредственно в области $ scope и полагаться на автоматический рендеринг разрешенных значений. Мы считаем, что этот подход довольно запутан, особенно принимая во внимание противоречивое поведение для обещаний, полученных от вызова функции.
Я новичок как в обещаниях, так и в угловатости, и пытаюсь выяснить, как совершается какая-то магия.
Книга Освоение разработки веб-приложений с помощью AngularJS, и это в третьей главе.
Да, это действительно показывает обе модели. Я бы разместил страницу #, но я читаю ее в epub, поэтому понятие «страница» зависит от размера устройства и шрифта. Но это в главе 3, перед тем, как ввести $ http и $ resouce. – boatcoder