2014-01-17 3 views
1

Ранее мой код отлично работал в версии AngularJs 1.1.5, но после обновления до 1.2.x следующие коды не работают. Что-то изменилось в 1.2.x?Зачем обещать на заводе не работает с AngularJs 1.2.0?

Демоверсия: http://plnkr.co/edit/w2O8Ci Невозможно отобразить «мир», но если вы измените угловое значение на 1.1.5, все будет работать нормально.

Вот код:

<!DOCTYPE html> 
<html ng-app="myApp"> 

<head> 
    <!--<script src="http://code.angularjs.org/1.1.5/angular.min.js"></script>--> 
    <script src="http://code.angularjs.org/1.2.9/angular.min.js"></script> 
    <script> 
     var app = angular.module('myApp', []); 
     app.factory('NameFactory', function($http, $q) { 
      return { 
       getName: function() { 
        var deferred = $q.defer(); 
        deferred.resolve({ 
         name: "World" 
        }); 
        return deferred.promise; 
       } 
      } 
     }); 

     app.controller("NameCtrl", function($scope, NameFactory) { 
      $scope.name = NameFactory.getName(); 
     }); 
    </script> 
</head> 

<body ng-controller="NameCtrl"> 
<h1>Hello, {{name.name}}</h1> 
</body> 

</html> 
+1

Возможный дубликат [Ангулярные обещания, не обязательные к шаблону в 1.2] (http://stackoverflow.com/questions/19472017/angularjs-promise-not-binding-to-template-in-1-2) – Frans

ответ

2

Вы используете обещания в том, что $resource работает ... не так, как обещает работу. Вы должны сделать это в контроллере Обещание API изменено в 1.2

NameFactory.getName().then(function(data){ 
    $scope.name = data 
    }); 
+0

Спасибо за ваши решения! – PunCha

Смежные вопросы