问题标签 [durandal-2.0]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
558 浏览

durandal - 使用 Durandal 的子视图合成

我有一个视图,它由另一个具有添加/编辑功能的视图(子视图)组成,现在我想使用路由,以便在单击添加新视图(添加)时显示替换原始视图,我尝试使用子视图路由器,但它不工作...

Shell 是我设置路由器以将用户带到 Pulse 视图的第一个视图——

现在在我的脉冲视图 HTML 中——

在视图模型(.js)文件中我有——

因此,当我尝试导航到新任务视图时,任务列表根据 HTML 中的 KO 绑定绑定在脉冲视图中,但现在在任务列表视图模型中——

我收到“找不到路线”错误,请帮助

0 投票
2 回答
3486 浏览

durandal - 具有父参数的 durandal 子路由器

我正在尝试初始化一个子路由器来为我的应用程序的客户部分构建子导航。

我要配置的网址是:

我在 shell.js 中定义了一条到达客户视图的路线

我创建了一个客户视图,其中包含客户部分的子导航。导航将使用路线中的客户 ID。除了显示客户子导航之外,此视图实际上并没有做任何事情。我在这个视图中创建了一个子路由器。

我的问题是,当我的父路由器中有参数时,我似乎无法让路由工作。客户视图被路由到,但订单视图没有。我最终将在客户部分下获得更多子视图。

0 投票
1 回答
50 浏览

javascript - 控制视图模型中默认转换的激活

我的问题很简单,不需要特别解释。

在 Durandal 中,是否可以控制在从/到视图模型切换时是否使用过渡?

我希望能够停用动画的原因如下:

quicksearch.js我的外壳/母版页中有一个搜索表单模块,可以从任何地方访问。它所做的是验证输入,然后简单地重定向到结果页面results.js,在散列后通过 URL 中的搜索参数。results.js负责查询服务器。

当在quicksearch.js除 以外的页面上使用模块时results.js,会触发动画并且它是所需的行为。但是,当 onresults.js和 using时quicksearch.js,URL 中唯一变化的是参数字符串(哈希后的模块名称保持不变)。尽管如此,这仍然经历了results.js再次激活的所有生命周期,从results.js到动画results.js,这看起来很糟糕。

那么,有什么方法可以在某种条件下阻止 Durandal 对内容进行动画处理,而只是组合和绑定视图?

0 投票
2 回答
292 浏览

durandal - Durandal 三级子路由

我正在尝试在Durandal.js中制作子路由器的子路由器,但出现随机愚蠢错误(例如 404 等)。是 Durandal 的问题(我的意思是如果它没有三级子路由支持)还是我的代码问题?

谢谢


无论如何,我将在此处包含我的代码:

返回2 级孩子

返回3 级孩子

0 投票
2 回答
487 浏览

durandal - 如何检测何时在 Durandal 中加载了组合的 html 文件(在激活器激活新项目后)

我正在使用激活器,我可以检测到新视图模型何时加载甚至激活,但如何检测其 html 对应项何时加载和显示?我只需要在旧 html(组合/嵌入页面)被新 html 替换后不久做一些事情。请注意,我对嵌入式 html 的更改感兴趣,而不是初始组合。

注意 2:我需要从父视图模型中检测到这一点 - 具有激活器的那个(加载的那个,而不是加载的那个)。

0 投票
1 回答
1410 浏览

durandal - Durandal:激活路由器时的条件启动模块

我的 Durandal 应用程序在 shell.js 中的启动逻辑需要根据某些条件逻辑将用户发送到两个可能的视图之一。基本上,如果以前没有选择某些选项,我会将它们发送到设置页面,否则我会将它们发送到正常的起始页面。

以前,在 Durandal 1.x 中,我只在调用激活时传递一个指示起始模块的字符串。但在 Durandal 2.x 中已被弃用。

所以首先,我想知道从路由数组的角度来看,推荐的方法是什么?我是否应该只注册两个路由,就好像启动模块都不是(如下所示)然后有条件地将另一个路由添加到默认路由''的数组?

我的问题的第二部分涉及如何处理调用 Web 服务的需要,这是我确定哪个模块是启动模块的条件逻辑的一部分。我的启动逻辑涉及检查浏览器的本地存储,但有时我还需要向服务器发出 ajax 请求以获取一些信息。

我的理解是 router.activate() 是一个承诺。我真的可以创建自己的承诺并在 ajax 调用完成后通过调用 router.activate() 来解决它吗?还是我需要另一种方法来处理它?我认为我可能会如何处理此问题的示例代码:

那有意义吗?我仍在将我的应用程序转换为 Durandal 2.0.1,所以我还不能尝试这个,但不管它是否可以,我都想知道在这种情况下推荐的方法是什么。

0 投票
1 回答
137 浏览

cordova - 没有调用谷歌分析

嗨,我一直在尝试将谷歌分析与我的混合移动应用程序集成,女巫是用 durandal 和 phonegap 开发的。这是我到目前为止所做的:

我已经复制了谷歌分析生成的一段代码,并将其添加到我的父 html 文件中。代码如下所示,我检查了源代码以确保它已加载:

然后我像这样链接到 durandal 路线完成事件:

每次页面更改时都会执行这段代码。

然后我开始浏览应用程序,半小时后仍然没有数据显示在分析页面上。

我已经检查了 chrome 开发工具中的应用程序,看看是否有任何呼叫向谷歌发出,但没有显示。

有谁知道我做错了什么?

编辑

从文档中我意识到我必须将我的域设置为 none 才能调用谷歌分析:

我假设这是正确的方法,因为这将是一个混合应用程序,可以在许多不同的平板电脑上运行。任何人都可以验证这个吗?

0 投票
1 回答
958 浏览

durandal - 如何将 Splat 路线设置为默认路线 Durandal 2.0

我的默认路由有子视图,如果可以,我可以在 Durandal 2.0 中将 Splat 路由设置为默认路由吗?

});

0 投票
1 回答
323 浏览

iframe - Durandal 2.0 Modal 使用 IFrame 显示 HTML 文件内容

我目前正在使用 Durandal 2.0 生成一个模式对话框来显示 HTML 文件。我使用 IFRAME 标签成功地做到了。它需要应用程序。SSRS 每天都会生成这些文件,用户需要在 Intranet 应用程序上查看这些文件的内容。我想知道除了使用 IFRAME 标记之外,是否有更首选的方式来显示外部 HTML 文件的内容,或者 IFRAME 标记仍然是首选方式?

提前感谢您的答案。

0 投票
1 回答
392 浏览

ajax - 淘汰赛:从调用 getJson 的单独 javascript 文件中绑定 viewModel 中的 observableArray

我正在使用 Knockout JS 和 Durandal JS。我想从一个单独的 Js 文件中查询数据库并将数据绑定到 viewModel Js 文件中。

我有一个index.js文件并包含一个 listData 作为绑定到视图(index.html)的 observableArray。在 index.js 中,我正在调用一个函数来从另一个文件中获取数据:apiCall.js。在apiCall.js 中,我调用getJson方法从数据库中获取列表。现在,我应该如何将新列表绑定到 listData observableArray?由于 Ajax 是异步工作的,因此所有其他代码都会在 getJson 调用之前执行。此外,返回不会按预期工作。

我该怎么做?如果我从同一个 viewModel 文件本身(index.js)调用 getJson 或 ajax,它可以正常工作,因为我们可以轻松推送数据。是否有一个单独的文件只用于 ajax 调用?

index.js

apiCall.js