实例化路由器 Backbone
Instantiating Routers Backbone
您好,我正在努力使用 backbone 路由器,我想了解有关实例化路由器的信息。
我可以在我的应用程序中有一个路由器文件,其中定义了所有路由,但我在我的 appView 和我的 appModel 中创建了一个路由器实例。我这样做是为了可以从视图和模型中调用路由器,但是我觉得这可能是一种相当草率的方法?
有没有更好的方法?
过去对我有用的处理此问题的最佳方法是创建一个包含在每个页面上的全局 javascript 文件:
<script type="text/javascript" charset="utf-8">
window.APP = {};
APP.Routers = {};
</script>
在页面加载时渲染一次路由器:
APP.Routers['my_router_name'] = new MyRouterName({});
现在您可以通过
在整个应用程序的任何位置访问它
APP.Routers.my_router_name
我倾向于遵循这种模式,不仅是路由器,我们 collections、模型等也是如此。
<script type="text/javascript" charset="utf-8">
window.APP = {};
APP.Routers = {};
APP.Collections = {};
APP.Models = {};
</script>
这似乎解决了您在这里陈述的问题...."I am doing this so that I can call the router from both the view and the model"。
您好,我正在努力使用 backbone 路由器,我想了解有关实例化路由器的信息。
我可以在我的应用程序中有一个路由器文件,其中定义了所有路由,但我在我的 appView 和我的 appModel 中创建了一个路由器实例。我这样做是为了可以从视图和模型中调用路由器,但是我觉得这可能是一种相当草率的方法?
有没有更好的方法?
过去对我有用的处理此问题的最佳方法是创建一个包含在每个页面上的全局 javascript 文件:
<script type="text/javascript" charset="utf-8">
window.APP = {};
APP.Routers = {};
</script>
在页面加载时渲染一次路由器:
APP.Routers['my_router_name'] = new MyRouterName({});
现在您可以通过
在整个应用程序的任何位置访问它APP.Routers.my_router_name
我倾向于遵循这种模式,不仅是路由器,我们 collections、模型等也是如此。
<script type="text/javascript" charset="utf-8">
window.APP = {};
APP.Routers = {};
APP.Collections = {};
APP.Models = {};
</script>
这似乎解决了您在这里陈述的问题...."I am doing this so that I can call the router from both the view and the model"。