问题标签 [durandal]

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 投票
1 回答
276 浏览

breeze - BreezeJS 是否应该在使用 Durandal 的单页面应用程序中跨页面共享实体管理器?

使用 Durandal 为单页应用程序创建 BreezeJS EntityManager 实例的最佳实践是什么?

是否应该有一个跨所有页面共享的实体管理器实例,或者每个页面应该有一个实例?

任何有关实施的细节都值得赞赏。

0 投票
1 回答
5438 浏览

knockout.js - 我输入的 BindingHandlers 没有正确解释敲除

我在一个使用 durandal 模板的网站上工作。

我的日期有这个 bindingHandlers:

这是我认为的电话:

这用于以正确的格式格式化我的日期。它有效我的意思是我的日期在我的输入字段中的格式正确。

问题是,每当在输入字段中修改日期时,系统都没有检测到任何变化。

如果我将“日期”替换为“值”,则当值更改时会正确解释它,但我错过了格式:

任何的想法?

0 投票
1 回答
717 浏览

single-page-application - Durandal routing not working?

I've got several pages up and working in my project that I can navigate to directly - one for home, another for "folder details". I list Folders on the homepage and I'm now trying to enable navigation to particular folders from the list.

If I navigate to /set I get a default set details page, that works.

If I navigate to /set/1 I get "no route found" from my main.js:

What is needed to form the link between the id in the URL and the viewModel?

0 投票
1 回答
719 浏览

knockout.js - Navigation logic seems to work only one time (durandal)

I am working on an ASP.NET MVC project with the durandal template.

I am facing a problem and need some help to find the more elegant solution. I have a header bar (blue) and a sidebar (grey). Both contains an element (link) to create a new transport. In the screenshot below this is showed with the bullets 1 & 2.

enter image description here

My idea was to proceed like this:

  • When clicked these 2 links navigate to #/newTransport
  • In the activate of this module I call my datacontext to create an entity with initial values and get back with the id of the transport created
  • Next, (still in this activate) I navigateTo #detailTransport/:id
  • Then the detail of this newly created transport id displayed

Here is the code:

So this newTransport view is not really showed, I used this to have a link allowing me to create the transport before showing it.

My problem is that it works only the first time and furthermore it seems to break the router logic someway.

I noticed that if I move the code from the activate to a button inside the view, I don't have problem anymore.

So for resume: I need to execute some code (create an entity) before navigating to the detail of this entity. My attempt (explained above) does not seems to work.

Any idea?

0 投票
2 回答
2711 浏览

javascript - 如何在 Durandal 中为我的 shell 视图模型使用一个类?

我正在查看 Hot Towel 模板,并试图让它在 TypeScript 中工作,我在转换 shell 视图模型时遇到了问题。我正在尝试将其翻译成 TS,对我来说它应该是一个类更有意义,而不是像这里所示的那样简单地导出函数。我查看了这种方法,但是,注意这里的评论,决定不遵循它。

经过一番挖掘后,我发现了这个线程,这表明它应该像覆盖一样简单router.getActivatableInstance,但我似乎无法获得足够远的距离来调用该函数。

这是我的main.ts(也上课):

(此处显示 JS 的游乐场:http: //bit.ly/WyNbhn

...这是我的shell.ts

...编译为:

使用上面的类,我得到一个绑定错误,因为router它是未定义的。如果我添加export var router = _router,那么这个错误就会消失,但我的 shell 类上的 activate 方法永远不会被调用。

以上所有内容都适用于后续视图模型,但只是落在了外壳上。

我做错了什么,我怎样才能让一个 TS 类作为我的 shell Durandal 视图模型工作?

0 投票
1 回答
1366 浏览

asp.net-mvc-4 - 用热毛巾和 durandal 链接到另一个控制器

我正在开发一个带有多个 spa 的 mvc4 应用程序。

我正在为我的水疗中心使用热毛巾模板。

我想要做的是在我的视图中有一个用于 spa 的锚链接转到另一个控制器的 index 操作,这样我的用户就可以退出一个 spa 并打开另一个。并非所有操作都会启动 spa,有些是常规的 mvc 样式页面。

我在我的 spa html 页面中放置了如下代码:

这将更改浏览器中的 url,但总是重新加载 spa 的默认 html 页面。如果我点击浏览器中的刷新按钮,那么是否会转到正确的页面。

我已经能够将目标放在 _parent 或 _top 的锚标记上,例如:

它将导航到新的控制器页面。

我相信这是 durandal 框架中的一些东西,它阻止了 spa 导航到第二个控制器,但是由于我刚刚开始使用这个,我很难过我需要改变什么。我认为应该有比在锚标签中使用目标更好的方法,或者是最好的选择。

0 投票
4 回答
6381 浏览

knockout.js - 下拉列表中填充了 Breeze 枚举(服务器端)提供的选项

我用 durandal/breeze 开发了一个 asp.net mvc 解决方案。

我有一个下拉列表,其中列表是从 Entity Framework Code First 提供的枚举中填充的。这是模型服务器端:

这是使用此枚举的表:

我的问题:如何检索枚举服务器端的这些值以便能够填充我的下拉客户端?我是否必须像这样在客户端手动创建一个新数组:

我的视图显示这个下拉列表是这样的:

对我来说,必须重新创建客户端的值列表似乎是多余的,因为我们已经拥有服务器端的值列表。

任何的想法?

谢谢。

0 投票
3 回答
1343 浏览

knockout.js - 使用 Durandal 一页中的多个独立 SPA

我想在一个 HTML 页面(我们的旧版应用程序)中托管两个或多个单页应用程序。这些应用程序应该位于完全不同的页面位置 - 因此我不能将 durandal 组合用于顶级根“shell”并使用 ko compose 绑定进行组合。这些应用程序应该能够相互通信(路由器/事件聚合器)。

是否可以将 Durandal 及其路由器插件用于此类事情?什么是最好的方法?

我尝试使用多个applicationHost元素并app.setRoot(vm, transition, element)使用 vm/element 的不同组合进行调用,但没有运气。似乎最后一个电话赢了......

我还创建了关于 Durandal 谷歌群组的讨论:https ://groups.google.com/forum/?fromgroups=#!topic/durandaljs/e6GclW0bEo0

0 投票
2 回答
2795 浏览

javascript - 在 Durandal 模板项目中使用 TimePicker 或 Datepicker

我对杜兰达尔很陌生。我尝试将时间选择器添加到项目中,如下所示。schedule.js 代码:

这里 jquery.ptTimeSelect 是时间选择器 js 文件。我真的需要在这里或其他地方添加 jquery.ptTimeSelect.js。

schedule.html :

我面临的问题我在页面底部获得了基本的时间选择器。我没有找到将 js 和 css 文件添加到项目的位置。请帮助我对此很陌生。

我正在使用来自以下链接的时间选择器http://pttimeselect.sourceforge.net/example/index.html

0 投票
2 回答
1013 浏览

design-patterns - 在 Mvc4 和 Knockout 中嵌套多个 Views\ViewModels

我有一个正在处理的 Mvc4 SPA 项目,我需要能够将多个视图相互嵌套。视图和视图模型使用 Durandal 链接起来。

在 Mvc3 中,我以前通过在视图中的局部视图中使用局部视图并将参数向下传递给局部视图来完成此操作。这样做我能够在一对多关系上有多个部分,而这些部分又显示了多个部分显示一对多关系,所有这些都链接回父视图。

先前在 Mvc3 中使用的示例 =

并查看类似

同样,上面是我过去使用的模式的一个简短示例,不需要帮助。

我可以使用 Breeze 从父视图模型中相对容易地加载子项和显示子项,但是当我进入大子项时,感觉就像我正在进入“意大利面条”代码并从一个视图模型加载太多。我在想正确的做法是为父母、孩子和孙子创建一个视图模型,将它们分开并使其可重用。

我的问题是父视图模型应该加载孩子的视图模型,然后让孩子的视图模型加载孙子的视图模型,还是应该有一个视图从单独的父级到子级到孙子级组成和级联?即一个视图应该分别加载3个视图模型还是应该有一个专用的父视图模型调用所有三个视图模型并或多或少地相互独立地加载它们?我在这里寻找最佳实践,因为 SPA 的想法对我来说相对较新。