- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个主视图和两个 subview (使用 DurandalJS 组合)。现在,主视图的 viewAttached 事件提前触发,而我的 subview 仍在处理 ajax 请求。理想情况下,主视图只会将 View 附加到 DOM 并在所有组成的 subview 完成激活后运行转换。
<h1>Hello World</h1>
<div data-bind="compose: { model: 'viewmodels/subview1', activate: true }">Loading...</div>
<div data-bind="compose: { model: 'viewmodels/subview2', activate: true }">Loading...</div>
最佳答案
处理此问题最直接的方法是在主视图激活期间手动激活 subview 。
从 subview 组合绑定(bind)中删除 activate:true,然后在您的主 VM 中执行如下操作:
//in main view model
var subViewModel1 = require("viewModels/subViewModel1");
var subViewModel2 = require("viewModels/subViewModel2");
function activate() {
return $.when(
subViewModel1.activate(),
subViewModel2.activate()
).then(function () {
//finish your main view's activation here
...
});
}
确保您的主 VM 返回一个 promise ,该 promise 仅在子 VM 完成激活时才解析。同样,子 VM 应确保其激活函数返回一个 promise ,该 promise 仅在该子 VM 的 AJAX 请求完成时才解析。
有一个 thread in Durandal Groups讨论了一个类似的概念。如果您还没有,那么绝对值得阅读一下文档,特别是与您的问题相关的文档:
关于javascript - 仅在 DurandalJS 中激活所有组合模块后才附加 View 。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15835709/
如何在父路由更改时触发停用事件。例如在“HTML 示例”中,当主从页面处于事件状态时,将 View 更改为另一个。如何在此处强制对话“你想离开......”? 谢谢弗拉基米尔。 更新: 带有替换对话框
有人可以解释为什么当用户单击 Durandal 的链接(导航)时没有立即开始转换(至少是默认的入口)吗? 换句话说,我们是否需要两种机制(加载器动画 + 过渡)来指示正在执行的操作(例如,激活方法中的
我有什么 试图了解正在发生的事情以及如何控制它。对于尚未通过身份验证的用户,我有一个“公共(public)” View ,对于已通过身份验证的用户,我有一个“主页” View 。这是我的路线配置: a
我真的很想利用 Durandal 的 buildNavigationModel() 方法并将我的 UI 导航绑定(bind)到 router.navigationModel。 但就我而言,我基本上想要
我在从 Knockout 的模板绑定(bind)转换到 Durandal compose 绑定(bind)时遇到了一些困难。 在我的旧项目中,我有一个选项卡列表,可以通过将它们放入可观察到的“sele
我有一个使用 DurandalJS 的 SPA 应用程序,效果很好。链接被路由, View 模型被激活等。 问题是,我有一个指向实际存在于服务器上的页面的 anchor 。我需要浏览器实际查询此页面(
对于我来说,我无法让 durandaljs 与 Areas 一起工作。我正在开发一个包含多个迷你 SPA 的应用程序,但我不确定如何设置 durandaljs 来使用它。我无法在网上找到任何可以让我朝
我有一个应用程序,它使用 moment js 插件显示事件相对时间。时间会自动刷新,与当前时间进行比较并显示(如 Facebook 新闻源)。应用程序之前是用 angularjs 编写的,我使用以下代
对于我来说,我无法让 durandaljs 与 Areas 一起工作。我正在开发一个包含多个迷你 SPA 的应用程序,但我不确定如何设置 durandaljs 来使用它。我无法在网上找到任何可以让我朝
我有一个主视图和两个 subview (使用 DurandalJS 组合)。现在,主视图的 viewAttached 事件提前触发,而我的 subview 仍在处理 ajax 请求。理想情况下,主视图
我有一个在 View 上显示的联系人组列表。当我单击联系人组时,我想更改当前哈希并加载关联的联系人。 比如说,我有 3 个联系人组 All (no Id) Friends (Id := 1) Fami
我正在使用 durandaljs 2.0。我已经按照建议和解释安装了 durandal 入门套件 here 。在 shell 中,我返回 router.activate({ pushState: tr
在 viewmodel.js 文件中,我想在文本框上绑定(bind)日期选择器。 这是代码 define([ 'jquery', 'durandal/app', 'servic
我有 DurandalJS 单页应用程序,所有数据均从 API 请求中检索,所需 header 包括要设置的 X-Auth-Token。一切正常,除了当我调用自定义模式来显示 iframe 时, 下面
我已决定为我的 AJAX 请求、模型和数据数组创建一个名为“controllers”的单独文件夹,这样如果我需要在多个页面上执行相同的请求,我就不必重复我的代码。 例如,在“app/page1/ind
如果您加载 Durandal SPA 模板并尝试导航到伪造的 URL(通过向 URL 添加类似“assdf”的内容),该 url 将得到维护并且不会提供任何错误。如何改变这一点,以便无效的 URL 给
我正在尝试使用 durandaljs 制作具有动态内容的单页应用程序。例如,如果您更改设置中的语言,则 UI 会更新。我正在使用 SignalR 从服务器加载对象,除了导航时一切正常。第一次加载 Vi
那是我的示例项目 (8,3 MB) Visual Studio 2012 解决方案: sample project zipped 我的问题: 模块 step2 及其 compositionComple
我正在尝试使用 DurandalJS 使模式在应用程序中工作(SPA) 框架,无法正确显示模态。目前,当模态打开时,它会在没有遮挡的情况下显示并水平填充浏览器。 (“Feeds”、“New Feed”
除了维护当前版本的 DurandalJS 之外,DurandalJS 项目的所有者现在还在 Google 开发 AngularJS Next (v2?)。这两个框架正在融合。 http://blog.
我是一名优秀的程序员,十分优秀!