Marionette.js appRouter 在应用程序启动时未触发

2023-12-03

我目前正在将 Marionette 集成到现有的 Backbone 应用程序中。

我已经有一个现有的 Backbone 路由器,但我正在尝试实现 Marionette.AppRouter 来取代它。问题是,在新 Marionette 路由器应拾取的 url 上进行“硬刷新”时,它不会触发。如果我导航到另一个页面,然后返回到硬刷新时未触发的网址,它会正确触发。我不明白为什么它有效after我已经导航到另一个页面并再次返回。这是我的代码示例:

TestApp = new Backbone.Marionette.Application();
    var testAppController = {
        testLoadPage: function(){
            console.log('testLoadPage Fired'); //<---- DOES NOT FIRE ON HARD REFRESH
        }
    };
    TestAppRouter = Backbone.Marionette.AppRouter.extend({          
        appRoutes: {
            "!/:var/page": "testLoadPage",
            "!/:var/page/*path": "testLoadPage"
        },
        controller: testAppController,
        route: function(route, name, callback) {
            return Backbone.Router.prototype.route.call(this, route, name, function() {
                if (!callback) callback = this[name];
                this.preRoute();
                this.trigger.apply(this, ['beforeroute:' + name].concat(_.toArray(arguments)));
                callback.apply(this, arguments);
            });
        },
        preRoute: function() {
            app.showLoader(name, arguments);
        }
    });
    TestApp.addRegions({
        contentContainer: '#container'
    });
    TestApp.addInitializer(function(options){
        new TestAppRouter();
    });
    TestApp.start();

当我加载页面时:http://mysamplesite.com/#!/123/page直接,Marionette 路由器不会按其应有的方式启动。

但是,如果我加载页面:http://mysamplesite.com/#!/123然后导航到http://mysamplesite.com/#!/123/page,Marionette 路由器正确启动。有任何想法吗?


你打电话了吗Backbone.history.start()创建路由器实例后?如果没有,您需要这样做。在您的应用程序中调用此方法之前,路由器不会运行,并且在至少实例化一条路由之前,您无法调用此方法。我通常这样做:


TestApp.on("initialize:after", function(){
  if (Backbone.history){ Backbone.history.start(); }
});

hth

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Marionette.js appRouter 在应用程序启动时未触发 的相关文章

  • 使用 Backbone 在多个异步 ajax 调用后渲染视图

    我有一个主干视图 我想在 2 个异步调用之后渲染 html initialize function model options team fetch success function collection do some things go
  • 如何从backbone.js中的模型获取数组元素

    我有以下代码 Person new Backbone Model data age 27 name alamin 现在 我怎样才能得到这个值 person new Person person get 请给我一个解决方案 如果您使用此模型 P
  • Backbone 对象渲染没有方法 apply - 绑定问题

    所以我在我的 AppView 中这样做 var flowerModel new app DataModel title flower values tulip rose dandelion dataToShow tulip rose dan
  • 如何通过 ID 以外的其他方式获取 Backbone.js 模型?

    Backbone js 通过 ID 获取模型的默认 RESTful 方法非常简单且直接 但是 我似乎找不到任何通过不同属性获取模型的示例 如何通过不同的属性获取 Backbone js 模型 var Widget Backbone Mode
  • Backbone.js 控制器中的默认路由?

    我想为我的backbone js 控制器设置默认路由 目前我是这样做的 class DealSearchController extends Backbone Controller routes list showListView phot
  • 如何将属性传递到 Backbone 视图?

    我正在使用 Backbone v1 0 0 开发我的应用程序 在开始工作期间 现在已经更新到 v1 1 0 所以在我以前能做的地方 var myView new MyView hash something 并访问hash在视图内部使用 th
  • 一次保存多个 Backbone 模型

    我有一个包含大量模型的 Backbone 集合 每当在模型上设置特定属性并保存它时 就会触发大量计算并重新渲染 UI 但是 我希望能够同时在多个模型上设置属性 并且只有在全部设置完毕后才进行保存和重新渲染 当然 我不想为一项操作发出多个 h
  • Backbone:同一模型的多个视图模型

    新手骨干问题 背景 建立一个有骨干的购物清单 我有一个名为名称 描述和标签 数组 属性的模型类 我想基于此模型或此模型的集合创建两个视图 第一个视图将显示所有项目 如下所示 ul li h3 Item 1 Name h3 p Item 1
  • 使用 $(function 等启动 javascript 代码

    我正在研究 Backbone 和来自的待办事项示例应用程序http todomvc com http todomvc com 我注意到有 3 种方法可以在文件中启动代码 function code here function code he
  • 骨干木偶区域显示无渲染

    是否可以将已渲染的视图放入骨干牵线木偶区域而无需再次渲染 例如 region show myView This will call render on myView 我不希望该区域再次呈现我的视图 If I do region attach
  • 在骨干模型上声明变量而不设置默认值

    我刚刚开始使用backbone js 我正在寻找一种在模型上声明字段而无需提供默认值的方法 它实际上仅供参考 以便当我开始创建实例时 我可以看到需要初始化哪些字段 用java之类的东西我会写 public class CartLine St
  • 如何将查询字符串传递给backbone.js 路由

    我正在使用 Backbone js 和 jQuery mobile jQuery 移动路由被禁用 我仅将库用于 UI 除了选择页面转换之外 我一切正常 我需要将页面转换 向上切片 淡入淡出 向下滑动 传递到主干路由器 因为转换根据用户来自的
  • jQueryMobile:未捕获类型错误:无法调用未定义的方法“_trigger”

    我正在使用 jQuery Mobile 和backbone js 当我加载主页时出现以下错误 Uncaught TypeError Cannot call method trigger of undefined 这就是我加载主页的方法 在r
  • Rails:backbone-on-rails gem-

    尝试按照 Ryan Bates Backbone js 教程构建抽奖应用程序 但我已经遇到了第一部分代码的问题 在 application js 的 init 函数中 他初始化了 Raffler 路线的新实例 该实例应该触发警报 主页 但我
  • Backbone.js 收集抛出错误

    我 作为初学者 正在制作一个小型骨干函数来附加我的链接 为此我使用要分配模型的集合 但集合抛出错误 任何人都可以纠正我的代码吗 function var Model new Backbone Model data name Yahoo hr
  • 使用主干渲染引导模式

    我认为代码可以更好地解释我的问题 风景 App Views ErrorModal Backbone View extend template window template errorModal render function this e
  • 使用 Rivets.js 迭代 Backbone.js 模型的集合?

    我在用着铆钉 js http rivetsjs com 对于 Backbone 项目中的两个双向数据绑定 并且希望实现迭代绑定 文档表明迭代绑定是可能的 但没有可用的示例 我正在使用一个简单的 Rails API 将 JSON 发送到客户端
  • 与 jQuery 配合使用的backbone.js 替代品?

    有没有像backbone js这样的东西的替代品 它为你的前端javascript提供了一些框架 结构 但没有任何不需要的依赖项 并且与jQuery更紧密地结合在一起 您需要一个易于使用的 MVC 框架吗 因为Sammy js http s
  • 如何定义与 Backbone 一起使用的 jade 模板

    我需要使用模板来渲染每个 ItemView var ItemView Backbone View extend className item template template itemTemplate html initialize fu
  • 获取集合时的 ​​Backbone.js 进度条

    我想在用新内容更新应用程序时显示进度条 我想最好的办法是在集合上调用 fetch 时执行此操作 我获取的内容主要是图像 视频海报等 但我只获取链接 而不是 base64 字符串或大的东西 我想做的是在获取图像链接时用进度条覆盖屏幕 渲染视图

随机推荐

  • 如何在实体框架中为不同用户使用不同的连接字符串

    我有一个要求 我需要为不同的用户提供不同的连接字符串 我们的想法是拥有username and password在登录屏幕上提供 用作username and password连接字符串的 从而使应用程序为不同的用户使用不同的连接字符串 并
  • sqlite3 c/c++,获取聚合查询涉及的表名

    我在 C 项目中使用 sqlite 我希望能够获取查询中涉及的表名 Ex SELECT FROM Employee 应该返回Employee 现在我使用成功了qlite3 column table name doc 对于此类查询 但对于聚合
  • VB.NET 中令人困惑的逻辑运算符

    我正在使用用 VB 编写的遗留代码库 并且遇到了一个我不理解的条件运算符 并且无法弄清楚要搜索什么来解决它 我正在处理的是以下代码和结果为 true 的变量 我不明白的具体部分是 1 第一个之间的关系X和第一个括号 2 2 的作用X lt
  • jq:传递不带引号的字符串参数

    我想传递一个不带引号的参数 JQ arg 默认情况下有双引号 因为它应该用作过滤器 例如 propt properties final jq r c arg p propt p sample json echo final 样本 json
  • Scala 柯里化与部分应用函数

    我意识到这里有几个问题what柯里化和部分应用函数是 但我问的是它们有何不同 作为一个简单的例子 下面是一个用于查找偶数的柯里化函数 def filter xs List Int p Int gt Boolean List Int if x
  • AS3 - 如何使用鼠标事件的像素/点检测而不是对象检测

    这看起来应该很容易 我都不好意思问 但我就是不明白 我有一个大的圆形 MovieClip 用作按钮 该影片剪辑包含具有透明背景的PNG插入到影片剪辑中 由于其尺寸 四个角 边界框 上有较大的空白注册区域 如何让鼠标注册为仅位于圆形像素上方
  • 我需要在 ASP.Net core Web API 的验证属性中返回自定义的验证结果(响应)

    我需要在 ASP Net core Web API 中返回自定义的验证结果 响应 失效属性 这是我创建的 ValidationAttribute class MaxResultsAttribute ValidationAttribute p
  • 如何单独更改按钮 pygame 上文本的不透明度?

    我下面有以下代码 它是从另一篇文章中获取的按钮的类 我想知道是否可以更改按钮背景的不透明度而不更改其上文本的不透明度 我怎样才能实现这个目标 Code import pygame pygame init font pygame font S
  • 如何读取 zip 存档中的单个文件

    我需要读取 zip 文件内的单个文件 test txt 的内容 整个 zip 文件是一个非常大的文件 2GB 并且包含很多文件 10 000 000 因此提取整个文件对我来说不是一个可行的解决方案 如何读取单个文件 尝试使用zip wrap
  • 使用 css 在 上设置强制宽度,该宽度位于 下,使用 colspan 而不使用 colgroup

    我想设置宽度td in tbody在下面thead th有一个colspan 2 具有硬定义的列宽 以 为单位 如果单元格内容超出 浏览器外壳不会动态调整表格宽度 sample width 100 table layout fixed sa
  • 如何在 CakePHP 2.0 中发送带有附件的电子邮件?

    我正在尝试使用 CakePHP 2 0 发送一封带有附件的电子邮件 该文件由用户通过表单提交 到目前为止我有 App uses CakeEmail Network Email email new CakeEmail email gt att
  • 使用 handler.postDelayed 获取剩余时间

    我在用handler postDelayed为某些动画内容创建一些延迟的方法 像这样 Handler h new Handler h postDelayed new Runnable Override public void run Sta
  • 如何在 foreach 循环中删除 xmlnode?

    在下面的代码中 我使用 foreach 循环来检查节点列表中的每个节点并删除其中的一些节点 删除一个节点后 foreach 循环抛出以下错误 元素列表已更改 枚举操作无法继续 我怎样才能避免它 public static XmlNodeLi
  • 在C中使用紧凑指针寻址二维数组的元素[关闭]

    Closed 这个问题需要调试细节 目前不接受答案 我正在使用 C 实现莫尔斯电码并遇到一些基础知识 基本思想是我有 A 到 Z 的二维字符数组 每个数组的第一个元素是一个字母表 后跟相应的莫尔斯电码 程序将接收一个字符 一旦找到匹配项 该
  • Hadoop 类型与映射预期值中的键不匹配文本收到的值 LongWritable

    有人知道为什么我会收到此错误吗 我看过很多其他类似的帖子 但其中大多数不适用于我 我也尝试了发布的一些确实适用于我的解决方案 但它们不起作用 我确信我只是错过了一些愚蠢的东西 谢谢您的帮助 chris chrisUHadoop usr lo
  • 将按类别分类的行添加到我的数据框中

    我使用 groupby 创建了一个新的聚合数据框 但在每个类别下添加小计行时遇到问题 我尝试过使用 pd groupby 和数据透视表并更改索引 但我无法按照我想要的方式表示数据 为每个 客户 创建 USD Balance 小计 但将其添加
  • 如何使可调用的谷歌云函数幂等

    我有一个谷歌云功能 可以向 firebase 主题发送通知 该功能一直工作正常 直到突然 它开始同时发送多个通知 2 或 3 联系 Firebase 支持团队后 他们告诉我我应该使函数幂等 但我不知道如何 因为它是一个可调用函数 更多细节
  • 将新的 APNS 证书上传到 GCM

    我们有一个使用 GCM 的 iOS 和 Android 应用程序 我正在尝试将新的生产 APNS 证书上传到 GCM 但无法上传 因为 Google 正在将 GCM 迁移到 Firebase 我怎么做 这是 Google 开发者产品的屏幕截
  • 自动标记 C 中未使用的结构成员

    我需要一个工具来自动标记未使用的结构成员在 C 代码库中 我对 未使用 的定义很简单 如果从代码中删除结构成员定义 并且代码编译成功 则该结构成员被声明为未使用 问题是 如何以自动化方式完成此操作 由于代码库很小 速度并不是太重要 关于该主
  • Marionette.js appRouter 在应用程序启动时未触发

    我目前正在将 Marionette 集成到现有的 Backbone 应用程序中 我已经有一个现有的 Backbone 路由器 但我正在尝试实现 Marionette AppRouter 来取代它 问题是 在新 Marionette 路由器应