在我的应用中,我喜欢整合ng-view
的内容。基本上,在用户点击链接后,我想停止ng-view
upto:
然后,让em ng-view
执行。到目前为止,让我显示pre-loader
图标或一些消息说'wait..`
这样做的正确方法是什么?
目前没有任何想法,我使用这样的路线。
$routeProvider
.when ("/issueDetails", {
templateUrl : "views/issueDetails/issueDetails.html",
controller : "issueDetailsController",
className : "body-issueDetails",
resolve: {
// I will cause a 2 second delay
delay: function($q, $timeout) {
var delay = $q.defer();
$timeout(delay.resolve, 2000); //delaying 2 sec.
return delay.promise;
}
}
});
但它并没有产生如此好的结果。有人告诉我正确的方向吗?
答案 0 :(得分:1)
如果我正确理解你,这应该发生在你视图中的html中。
ng-include
或者只是将它们放在不同的文件中并使用 function ShowNewMessages(res, curr, end) {
// build the front end
var newdiv1 = "<div class=\"message\"> <div class=\"own-avatar-message\" style=\"background-image: url("+res[curr][4].replace(/\\\//g, "/")+");\"></div><div class=\"own-message2\"><div class=\"own-message\"><p>" + res[curr][3] +"</p></div><div class=\"message-timestamp\"> "+ res[curr][1] +" • "+res[curr][2] +"</div></div> </div>";
$( newdiv1 ).insertAfter( $( ".message" ).last());
var height = 0;
$('.message').each(function(i, value){
height += parseInt($(this).height());
});
height += '';
$('div').animate({scrollTop: height});
// check if there is another messsage or checkagain for new messages
curr++;
if (curr <= end) ShowNewMessages(res, curr, end);
else {setTimeout(function() {GetNewMesssages()}, 10000);}
}
function GetNewMesssages() {
$.ajax({
type:'POST',
url: "../lib/GetMesssage.php",
data: "friend=" + MsgFriend,
dataType: 'json',
async: false,
success:function(data){
// check error state
if (data[0] != "Error") {
var start = 0;
var end = data.length-1; // minus one for the new line
if (end > 0 ) ShowNewMessages(data, start, end-1);
else setTimeout(function() {GetNewMesssages()}, 10000);
}
else alert('some error message');
}
});
}
。
也许我是误会,但我不明白为什么你需要推迟观点。也许如果你能解释为什么这对你不起作用,我会更好地了解如何提供帮助。