我的网页上有这个问题:
.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");
}
}])
我检查了很多时间的实施,但我找不到发生这种情况的原因。
答案 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");
}
}]);