首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJS ng-init不工作。

AngularJS ng-init不工作。
EN

Stack Overflow用户
提问于 2016-05-13 13:39:23
回答 1查看 1.2K关注 0票数 1

当我在加载页面后马上去list.html时,它不会给我显示列表。我需要先去form.html,然后再回到list.html,然后它给我列表。当我在控制器中有$http函数时,它按照我的要求工作,但是现在它们在服务中,它们不再像以前那样工作了。

app.js

代码语言:javascript
复制
app.service("dataservice", function($http){

    var list = [{}];

    this.get = function(){
        $http.get("harjoitus22/backend.php").success(function(response){
            list = response;
        });
    };

    this.save = function(newcontact){

        $http({
            method: 'post',
            url: 'harjoitus22/backend.php',
            data: newcontact,
            header: 'Access-Control-Allow-Origin: *'
        }).success(function(response){
            list = response;            
        });         
    }; 

    this.give = function(){
        return list;
    };
});

app.controller("mainController", function($scope, $location, dataservice){

    $scope.save = function(){    
        dataservice.save($scope.newcontact);
        $scope.newcontact = {};
        $location.path("/list");
        $scope.list = dataservice.give();
    };

    $scope.get = function(){
        dataservice.get();
        $scope.list = dataservice.give();
    };
});

list.html

代码语言:javascript
复制
    <tbody ng-init="get()">
        <tr ng-repeat="object in list">
            <td>{{object.nimi}}</td>
            <td>{{object.email}}</td>
            <td>{{object.ruoka}}</td>
            <td>{{object.sauna}}</td>
        </tr>
    </tbody>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-13 13:43:11

$http调用异步工作,当您调用它时,它不会在下一行执行时给出响应。为了关注ajax,您应该使用promise通过$http方法返回。

为了实现同样的目标,您需要从服务get方法中返回允诺对象($http方法确实返回承诺对象,它通过将代码放在.then函数中来帮助您执行代码)。

服务

代码语言:javascript
复制
this.get = function(){
    return $http.get("harjoitus22/backend.php").then(function(res){
        list = res.data;
    });
};

控制器

代码语言:javascript
复制
dataservice.get().then(function(){
   $scope.list = dataservice.give();
});
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37211527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档