问题标签 [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 投票
2 回答
1694 浏览

single-page-application - 使用带有 durandal 模板的自定义 javascript 脚本文件

我使用Durandal 模板处理 Visual Studio 2012 MVC4 项目。在这个模板中,shell.js 页面为我们提供了一个非常简单的菜单解决方案,其中每个元素都位于顶部。我个人需要一些不同的东西。为此,我有一个名为 dropdown.js 的 javascript 文件,它允许我显示/隐藏子菜单。它在标准项目中运行良好,但我无法使用 durandal 模板完成它。

这是我尝试的:

我在 Index.chtml 中添加了对 dropdown.js 脚本的引用:

然后在 shell.html 页面中,我想这样使用它:

这是 dropdown.js 的一小部分:

如您所见,每个用“下拉”类装饰的元素都应该被捕获。它不适用于杜兰达尔。我放置了一些警告框来检查它。显示警报“XX”,但从未显示警报“YY”。

我搜索了几个小时没有成功。

任何的想法?

0 投票
1 回答
752 浏览

asp.net-mvc - Durandal 运行 js 函数和缓存的初始问题

我正在玩用于 ASP.Net MVC 的 Durandal Starter Kit。相处得很好,但我现在有两个问题:

  1. shell 视图加载后如何运行函数。我需要在 shell.html 中找到 dom 元素的高度,但在 ViewModel 激活方法中不起作用,因为视图尚未加载,所以我得到一个空值。我似乎也无法将脚本放入 shell 视图本身。
  2. 每次我更改布局、css 值、一些文本、任何东西时,我都必须删除我的缓存以供应用程序更新,是否有一些全局值这样做?
0 投票
1 回答
1501 浏览

typescript - 如何将 Fancybox 与 Durandal en TypeScript 结合使用

我正忙于使用 John Papa 的 Hot Towel 模板进行原型设计和开发。我没有使用 Javascript,而是使用 TypeScript 并遇到了一个问题。

当用户单击 SPA 中的图像时,我希望图像以花式框弹出。但是我无法实现这一点。我想我把我的fancybox代码放在de Activate函数中,因为每次加载视图时都会调用它(我在这里可能是错的)。

但我还发现 Fiddler 在 .html 之前加载了 de .js(ModelView),这意味着 viewmodel 无法调整 .html(我在这里也可能错了)。

我将发布视图和模型。

正如我在 Chrome 或 Fiddler 中所说,所有 javascript 库都已正确加载。

看法

模型视图

0 投票
2 回答
536 浏览

asp.net - 使用 Breezejs 捕获 SaveChanges() 上的外键异常

我在 ASP.NET MVC 4 SPA 和带有 EF 5.0 数据库的 durandal 项目中使用了微风,除了某些情况外,一切正常。

如果我在 javascript 和 SPA 方面看起来有点菜鸟,请原谅我。我边走边学。

这是我的 2 个 EF 模型

项目.cs

客户端.cs

我的客户视图模型的摘录

摘自repository.js(数据上下文)

这是我的 ProjectBillingController.cs 的摘录

这是我的场景,

我有一个对客户“ABC”的引用的项目“P1”。如果我尝试删除客户端“ABC”,微风会在我的 WEBAPI 控制器“ProjectBillingController.cs”的 SaveChanges 内引发异常。

我知道在 SQL 世界中,这应该是预期的错误。

但我的问题是...

  • 我可以在客户端到达服务器“ProjectBillingController.cs”之前捕获此约束错误吗?
  • 我认为解决此问题的唯一方法是进行另一个查询,以查看该客户端的 Project 实体中是否有任何行,如果有,则停止删除,否则继续删除。还有另一种方法可以做到这一点吗?
  • 我应该在我的视图模型或数据内容(存储库)中编写这个“验证逻辑”吗
0 投票
1 回答
3349 浏览

security - durandal mvc 应用程序身份验证安全性

我能够成功使用(索引视图中的代码)

在登录后(使用标准 mvc 帐户控制器和来自标准 mvc4 应用程序的登录表单)让应用程序最初被强制进入登录页面。

然后我在页脚添加了一个按钮来调用注销控制器方法(这个函数被添加到 shell.js 并且我已经验证它是在按下按钮时调用的)

我已经通过控制器方法进行了调试,它成功调用了

调用 Index 页面并且不再对用户进行身份验证,但上面对 PartialView("Login") 的调用不会修改浏览器的内容。

我不明白为什么浏览器中没有加载登录部分视图。我在控制台中没有任何错误,也没有其他迹象表明有问题。

我搜索了一下,没有找到任何扩展 Hot Towel 模板以支持身份验证的示例。(除了关于如何设置身份验证令牌的一些事情之外)我采取了第一步,只需让索引视图能够在 durandal 应用程序加载之前强制用户登录。这很好用。

什么是让它工作的正确方法?我有一个使用 Durnadal 入门套件的示例,它显示了这种行为。我可以提供给任何需要的人。

shell.js 中的 javascript 返回似乎是重定向指示的索引页面的 html。(试图让警报显示这一切是有问题的)

致力于将样品送到 Skydrive 等

0 投票
2 回答
2843 浏览

javascript - 用于多个 SPA 的 Durandal 和 MVC4 区域

我有一个带有区域的 Internet 应用程序 mvc4,对于我的组织,每个区域都代表一个 SPA,并且通过“管理 NuGet 包”我安装了“Durandal 1.2.0”、“Durandal Transitions 1.2.0”和“Durandal Router 1.2.0”。我组织了文件夹并从 Durandal 的文件夹“App”中退出了“views”和“viewmodels”,并将新视图放在 mvc4 区域的文件夹“VIews”中,例如:

Areas-->NewArea-->Views-->ControllerFolder-->views-->shell.html

然后我将“viewmodels”放在“脚本”文件夹中,例如:

脚本-->NewArea-->ControllerFolder-->viewmodels-->shell.js

脚本-->NewArea-->ControllerFolder-->main.js

然后我更改了 durandal JS 的路径,例如在 main.js 中:

我在下一行更改了 main.js:

但是文件夹的配置失败了,因为下一行在其定义中多次调用模块“viewLocator”并用默认值重写“useConvention”的配置:

只有当文件夹“views”和“viewmodels”不在“Durandal”的“App”文件夹下时才会发生这种行为。

请帮助我,如何在同一个项目中拥有各种 SPA?

0 投票
2 回答
1638 浏览

html - 单页应用程序和内联 Fancybox 无法正常工作

我正在尝试制作 SPA 并将 Hot Towel 模板与 durandal 一起使用。到目前为止,我已经成功地在我的水疗中心添加了一个 Fancybox,它显示了一张图片

这工作不那么正常,但没关系;)

现在我想在fancybox中有一个自己的内联,如下所示:

当我点击时不:<a class="fancybox-thumb" href="#inline">Inline</a> 我确实得到了带有我的信息的幻想框。但是 url 被设置回 localhost:2321/#inline 所以我被重定向回了家,但我确实看到了幻想框。我该如何解决这个问题,以便花式框在我的 SPA 中显示一个正确的页面并留在那里?

格。乐华

0 投票
2 回答
1366 浏览

requirejs - Hot Towel:为什么Durandal和Require在App文件夹而不是Script文件夹?

这是来自 Script 中的 3rd 方库的想法,以阻止开发人员自定义它们。这将鼓励他们编写扩展,以便更容易地接受任一库的新版本。

0 投票
1 回答
1208 浏览

javascript - 在 Fancybox 敲除后重新应用绑定

我正在尝试实现这样的结果,即当用户单击链接时,会打开一个带有 html 的内联花式框。当用户输入一个值并点击输入时,它应该更新(淘汰)我的视图模型,并且花哨的盒子应该面向一个方向。

到目前为止,这是我的代码,我知道我需要重新应用 mybindings 但不知道如何。

HTML:

Javascript(打字稿):

如果我以正常方式使用 div(设置为 display:none),那么没有fancybox,一切正常。

我应该怎么办?我正在使用杜兰达尔!

0 投票
2 回答
3029 浏览

asp.net-mvc - Durandal and ASP.NET MVC conventions

I'm currently evaluating Durandal for use in an enterprise ASP.NET MVC application.

However the default conventions used by Durandal seem to conflict with the MVC conventions I've grown accustomed to.

The HotTowel MVC template by John Papa is great, but this too seems to "do away" with MVC conventions in favour of Durandals by putting things in an App folder.

A couple of the issues I have with these conventions are:

  • Views are potentially split across two locations (/App/views and /Views).
  • Scripts are also split across two locations (/App/durandal and /Scripts).
  • Views are not in the default MVC locations for the RazorViewEngine.

I would prefer to keep each element contained in the appropriate MVC conventions e.g.

My questions are:

  1. Is it possible to configure Durandal to achieve the above (or something similar)?

  2. Is it wise to venture away from the default Durandal conventions?

  3. What are the potential issues in doing so?