我正在使用ui-router,我有这样的设置
在app.js中我有以下
$stateProvider
.state('TechReadiness', {
url: "/Dashboard/TechReadiness",
templateUrl: "/partials/TechnicalReadinessReport.aspx"
})
.state('TechReadiness.details', {
url: "/ReadinessDetails/:a/:b",
templateUrl: function ($stateParams) {
return "/partials/TechReadinessDetails.aspx?b=" + $stateParams.b + '&a=' + $stateParams.a;
}
})
有一个页面,在该页面上我创建了如下所示的链接
$("#Chart5ImageMap area").each(function () {
var vHref = $(this).attr('href');
var arg1 = vHref.substring(vHref.indexOf("'") + 1, vHref.indexOf(",") - 1);
var arg2 = vHref.substring(vHref.indexOf(",") + 2, vHref.lastIndexOf("'"));
var a = arg2.split(',');
$(this).attr('href', '#/Dashboard/TechReadiness/ReadinessDetails/' + a[0] +'/'+a[1]);
});
这会将所有点击回发事件(asp.net图表控件)更改为简单链接。现在的问题是,每当我点击链接时,网址都会正确更新,但相应的视图不会被加载。
例如: 如果我点击链接 A =参数1,B =参数2
网址变为http://localhost:63893/#/Dashboard/TechReadiness/ReadinessDetails/parameter1/parameter2
相应地加载了正确的视图
但是当我点击链接
时α=参数2,B =参数2
网址更改为http://localhost:63893/#/Dashboard/TechReadiness/ReadinessDetails/parameter2/parameter2
但视图中的内容会更改
答案 0 :(得分:0)
当您已经处于州" TechReadiness.details"时,视图templateUrl将不会重新加载。您应该将参数设置为控制器,但查看模板。
答案 1 :(得分:0)
问题是我使用ASP.Net,因此在页面上启用了客户端缓存,因为页面顶部有以下行
<%@ OutputCache Duration="10" Location="Server" VaryByParam="none" %>
我通过替换
来修复它<%@ OutputCache Duration="10" Location="Server" VaryByParam="a;b" %>