我试图通过$ http调用从json加载div中的一些元素。但无论我尝试什么,清单仍然是空的。这是代码。
<div class="submenu" >
<div class="menuitem" ng-repeat="item in navigator" >{{item}}
<a href="#/main/welcome/{{item.messageId}}">{{item.label}}</a>
</div>
这是一个抽象状态,我在路由中为它指定了控制器greetingctrl。 JS代码是
app.controller('greetingCtrl',function($scope,$cookieStore,$timeout,$state,msg,SERVICE,RestService,$stateParams){
$scope.list = [];
$scope.navigator;
$scope.options.loading = false;
var currentmsg;
$scope.user = $cookieStore.get('userinfo');
$scope.init = function(){
var url = SERVICE.greetingMsg;
var data = {
providerID : $cookieStore.get('userinfo').providerId,
loginID : $cookieStore.get('userinfo').loginId,
action : "GET_MESSAGE"
}
RestService.post(url,data).then(function(res){
$scope.navigator = res.messages;
},
function(err){
console.log(err);
});
}
在这里,我可以成功接收数据,但列表中的数据永远不会出现。 RestService.post是我在服务中定义的$ http方法。我使用的是角1.5.8,我是角色的新手。
编辑:删除了ng-show和ng-if。数据仍无法显示
答案 0 :(得分:1)
您需要检查两个变量:
- showmenu
我根本没有看到它的价值发生变化,所以它总是false
- loadingisDone
与上一个相同。
请记得在某个地方拨打$scope.init
。
答案 1 :(得分:0)
ng-if标签包含什么,它应该有一些条件要检查 改成 0' &GT; 试试它是否有效
答案 2 :(得分:0)
您不需要在同一标签上使用ng-if和ng-show两个指令。 您可以使用其中任何一个来显示使用&amp;&amp; 和 || 运算符的DIV。 请检查变量的值是否正确更新。
答案 3 :(得分:-1)
对于异步执行,请使用$ scope。$ apply来更新范围数据。
RestService.post(url,data).then(function(res){
$scope.$apply(function() {
$scope.navigator = res.messages;
});
}