1
我正在尝试使用RESTful API做一个简单的待办事项应用程序。我的RESTful服务返回以下JSON,从angularjs调用RESTful服务的正确方法
[{"title":"completed this","completed":false},{"title":"and this too","completed":false}]
返回一个应用程序/ JSON不是一个字符串。
我的观点是如下,
<div class="container" ng-app="todomvc">
<div id="todoapp" ng-controller="TodoCtrl">
<div class="row" ng-repeat="todo in todos">
{{todo.title}}
</div>
</div>
</div>
和我有以下控制器和工厂JS代码,
var todomvc = angular.module('todomvc', []);
todomvc.factory('todoREST', function ($q,$http) {
function get(){
return $http.get('http://localhost/test.php');
}
return{get:get};
});
todomvc.controller('TodoCtrl', function TodoCtrl($scope, $location, $filter, todoREST) {
var todos = $scope.todos = todoREST.get().then(function(data){
todos = data.data;
console.log(todos); // Data available here
});
});
我不能拿到冠军的页面时,它是加载。我究竟做错了什么?我的方法是创建RESTful呼叫的正确方法吗?
这里是什么,我已经做了链接, http://plnkr.co/edit/kaSCe9HoMPEK1hD4QgJl?p=preview
谢谢你,它的工作。我已经用类似的方式定义了put(todos),但是它未定义。 http://plnkr.co/edit/zLNfrvkADtthowaJE98e?p=preview – 2014-11-21 17:51:46
你还没有真正理解我认为的承诺的概念。我不明白你从服务中得到这个双重任务。 'var todos = $ scope.todos = todoStorage.get()...'服务返回一个promise,而不是todos。你可以将这个承诺分配给一个变量,但你可能不想。 – BenCr 2014-11-21 18:23:15
看看你的工厂正在返回,看看为什么你的put是未定义的。 – BenCr 2014-11-21 18:24:52