无法绑定承诺数据以在angularjs中查看

时间:2016-11-25 01:41:55

标签: javascript angularjs angular-promise

我已经尝试过在stackoverflow上找到的示例,但我的视图中仍然没有得到任何结果。我可以在控制台中看到文章ID但视图中没有任何内容。提前感谢您的帮助。

这是我的控制器:

export class MainController {
    constructor ($http) {
        'ngInject';

        this.$http= $http;
        this.apiHost = 'http://localhost:5005/api/articles';
        this.getArticles();
    }

    getArticles() {
        var vm = this;
        this.$http.get(this.apiHost).then(function(result){
            vm.articles = result.data;
            vm.articles.forEach(function(item){
                console.log(item.articleId);
            });     
        });
    }
}

我的观点在这里:

<div class="form-group">
  <label for="resumeId">Select article:</label>
  <select class="form-control" id="resumeId">
    <option ng-repeat="item in main.vm.articles" value="{{item.articleId}}">{{item.articleId }}</option>
  </select></div>

1 个答案:

答案 0 :(得分:1)

这与promise无关,HTML只是引用了错误的范围。在$ http回调中,您将结果分配给vm.articles(其中vm是控制器的范围),因此articles可以main.articles而不是main.vm.articles

将您的ng-repeat更改为ng-repeat="item in main.articles",它会有效。