【发布时间】:2013-04-08 14:09:50
【问题描述】:
我需要在 Durandal 路由器中动态添加/删除路由方面的帮助。我想要的是在用户登录后,我将能够根据登录用户的类型添加或删除特定路线。
我试图从 visibleRoutes/allRoutes 数组中添加/删除路由...但从敲除库中获取绑定异常...
我希望这是常见的情况...但仍然找不到任何解决方案...请帮助我解决此问题。
谢谢。 瓦西姆
发表评论:
我尝试使用此功能来动态隐藏/显示路线...并且类似地尝试从 allRoutes[] 添加/删除路线...但随后在淘汰赛出价时出现异常
showHideRoute: function (url,show) {
var routeFounded = false;
var theRoute = null;
$(allRoutes()).each(function (route) {
if (url === this.url) {
routeFounded = true;
var rt = this;
theRoute = rt;
return false;
}
});
if (routeFounded)
{
if (show)
{
visibleRoutes.push(theRoute);
}
else
{
visibleRoutes.remove(theRoute);
}
}
}
【问题讨论】:
-
请发布一些代码,说明您是如何尝试执行此操作的、遇到了什么错误以及所述代码的任何上下文。
-
@Kal_Torak 请查看我更新后的帖子以及我尝试过的代码
-
请发布错误。此外,设置
theRoute=this;看起来非常可疑。我想在上面设置一个断点来仔细检查,但我怀疑它会给你带来你期望的结果。我建议查看 router.js 文件以查看添加新路由的签名。 -
这个函数是用'router.js'编写的,函数中的“this”指向我想要显示/隐藏的路由,这是我得到的异常“---未捕获的错误:无法解析绑定。消息:ReferenceError:isActive 未定义;绑定值:css:{ active:isActive } ---" 在该函数执行后
-
那么您是否注意过该错误并检查以确保在您的视图模型上定义了
isActive属性? KO 错误信息量很大。
标签: durandal