我的 AngularJS 应用程序中发生了一些奇怪的事情。我有一个视图,其中有一个绑定到对象数组的锚标记列表(我ng-repeat
用来呈现列表)。每个锚标记都ng-click
绑定到控制器上的方法。方法如下:
$scope.onSiteSelected = function ($event, site) {
$event.preventDefault();
$.ajax({
url: '/Site/GetSiteMap/' + site.Id,
success: function (response) {
if (response && response.length > 0) {
menuManager.setSiteMap($scope.$root.menu, response[0]);
var url = response[0].Children[0].Settings.Url;
$location.path(url);
}
}
});
}
url
var 每次都被初始化为正确的值。但是,当我第一次单击锚标记时,$location.path(url)
什么也不做,当我第二次单击它时,它确实导航到目标 URL。
更新:
好的,我通过使用以下$http
服务使其正常工作:
$scope.onSiteSelected = function ($event, site) {
$event.preventDefault();
var address = '/Site/GetSiteMap/' + site.Id;
$http.get(address)
.success(function (response) {
if (response && response.length > 0) {
menuManager.setSiteMap($scope.$root.menu, response[0]);
var url = response[0].Children[2].Settings.Url;
$location.path(url);
}
});
}
$,ajax
如果我使用or真的有什么不同$http
吗?我以为这两者可以互换使用...?