angularjs ng-repeat不显示数据

时间:2016-10-20 17:15:00

标签: angularjs ng-repeat

我的网页上有这个问题:

.libs

Json正确到达,但如果我想使用ng-repeat在div中显示这些值,则不会出现任何内容:

 app.controller('MessageController',['$http',function($http){
        http.get("DataManage.php?metodo=GetMessage")
        .then(function(response){
        this.Message=response.data.records;
        });


         this.ShowMyMessage=function(){
            console.log("Message");
            }   
    }])

我检查了很多时间的实施,但我找不到发生这种情况的原因。

3 个答案:

答案 0 :(得分:1)

您似乎正在尝试使用controllerAs模式。在这种情况下,您必须绑定已经执行的控制器函数上下文(this)内的所有变量。但您错过了在ng-controller指令value中定义控制器别名,如ng-controller="MessageController as vm"

<强>标记

<div class="card-content Blue-text" ng-controller="MessageController as vm">
    <li id="MessageBox" ng-repeat='msg in vm.Message'>
        <span>{{msg.Text}}</span></li>
    </li>
</div>  

<强>控制器

app.controller('MessageController', ['$http', function($http) {
  var vm = this; //put this inside vm to avoid this related issue.
  $http.get("DataManage.php?metodo=GetMessage")
    .then(function(response) {
       vm.Message = response.data.records;
    }
  );

  vm.ShowMyMessage = function() {
    console.log("Message");
  }
}]);

答案 1 :(得分:0)

this.message更改为$scope.message

app.controller('MessageController',['$http',function($http,$scope){
$http.get("DataManage.php?metodo=GetMessage")
.then(function(response){
 $scope.Message=response.data.records;
});

答案 2 :(得分:0)

使用范围变量。

app.controller('MessageController',['$http','$scope',function($http,$scope){

    $http.get("DataManage.php?metodo=GetMessage")
.then(function(response){

 $scope.Message=response.data.records;


});



this.ShowMyMessage=function(){

        console.log("Message");

}
}]);