我正在尝试设置注册和登录Hot Towel SPA应用程序.我已经基于asp.net单页面应用程序模板创建了SimpleMembershipFilters和ValidateHttpAntiForgeryTokenAttribute .
你怎么得到的
@Html.AntiForgeryToken()
Run Code Online (Sandbox Code Playgroud)
代码以Durandal SPA模式工作.
目前我有一个register.html
<section>
<h2 data-bind="text: title"></h2>
<label>Firstname:</label><input data-bind="value: firstName" type="text" />
<label>Lastname:</label><input data-bind="value: lastName" type="text" />
<label>Email:</label><input data-bind="value: emailAddress" type="text" />
<label>Company:</label><input data-bind="value: company" type="text" />
<br />
<label>Password:</label><input data-bind="value: password1" type="password" />
<label>Re-Enter Password:</label><input data-bind="value: password2" type="password" />
<input type="button" value="Register" data-bind="click: registerUser" class="btn" />
</section>
Run Code Online (Sandbox Code Playgroud)
register.js:
define(['services/logger'], function (logger) {
var vm = {
activate: activate,
title: 'Register',
firstName: ko.observable(),
lastName: ko.observable(),
emailAddress: ko.observable(),
company: ko.observable(),
password1: …Run Code Online (Sandbox Code Playgroud) asp.net-mvc-4 knockout.js single-page-application durandal hottowel
我正在使用Durandal,而Durandal又利用了Knockout.
我希望能够动态更改验证长度

小提琴似乎与我的"工作"解决方案略有不同,但它仍然没有做我想要/期待的事情.
Viewmodel JS:
[尝试1]
define(function () {
var self = this;
self.userInfo = {
IdOrPassportNumber: ko.observable().extend({
required: true,
pattern: {
message: 'A message',
params: /some regex/
}
}),
IdType: ko.observable()
},
self.isIdValid = ko.validatedObservable({
IdOrPassportNumber: self.userInfo.IdOrPassportNumber
});
self.userInfo.IdOrPassportNumber.subscribe(function (value) {
if (isIdValid.isValid()) {
console.log('YOLO!');
}
});
self.userInfo.IdType.subscribe(function (value) {
console.log(value);
if (value === 'Passport') {
self.userInfo.IdOrPassportNumber.extend({ maxLength: 15 });
} else {
self.userInfo.IdOrPassportNumber.extend({ maxLength: 13 });
}
});
var viewModel = {
userInfo: self.userInfo
};
viewModel["errors"] …Run Code Online (Sandbox Code Playgroud) 我已经开始使用(几个小时前)Durandal希望在一个页面内管理视图和允许组合 - 之前的方法,也使用Knockout,在一个胖的HTML文件中维护过于笨重.
我已经安装/设置了Durandal,我可以创建视图和视图模型 - 但是,我不知道如何将数据导入 viewmodel以用作新视图模型的基础.
举例来说,我有选择的项目是"左侧导航栏" -当一个项目被选中它更新了"选择项"在当前的模型观察到的,但它应该也加载正确的"详细信息视图",在右边:由于部分尝试Durandal分离组件/视图的原因,这应该来自一个单独的视图/视图模型.
我已经阅读了包含Composition和Using Composition的文档,但是关于如何将数据传递给viewmodel的方法对我来说并不清楚.看起来我可以使用现有模型的视图(在当前视图/范围中),但我真的只想使用一些当前模型数据(即id)来获取"真实"模型数据风景.
因此,我的问题;
如何将初始数据(例如"选定项目")传递给视图模型?我更喜欢使用声明性的"compose:"绑定,因为这就是KO的原因.KO.
这种概念是在这里使用/传递初始数据的正确方法,还是有更好的选择?我看到"activeItem"含糊地提到了,但细节/用法让我很开心.
更新1:我发现我们如何在视图之间共享数据/传递数据视图以进行查看,但实际实现中缺少响应.我真的不想在父子(不同的视图/视图模型对)之间共享viewmodel,我想使用声明式方法(没有事件).父母不需要了解孩子,但孩子需要从父母那里获得数据.
更新2:虽然上面我暗示只需要"id",但我想要一种适用于任何基础对象的方法,路由器不一定适合.在这种情况下,深度链接不是问题.但是,如果你觉得路由器的方式来处理这个,张贴如答案参数(带细节),我会至少给它一个赞成票..
parent-child mvvm viewmodel single-page-application durandal
我使用Durandal模板处理asp.net解决方案.
我尝试使用与knockout兼容的koGrid(https://github.com/Knockout-Contrib/KoGrid).在Durandal管理的测试页中插入此网格时,它不起作用:网格似乎在那里但没有正确显示.
我们注意到,如果我们调整窗口大小,则网格会正确调整.
有没有人已经成功将这个koGrid集成到Durandal/HotTowel模板中?
重现问题的步骤:
这是一个包含一个ASP.NET MVC项目的zip来重现这个问题:https://www.dropbox.com/s/15rphyhkqp1h8py/KOGrid-HotTowelTemplate.zip
谢谢你的帮助.
完成了关于Pluralsight的John Papa课程 - 顺便说一句真棒!)
我现在正在创建我的第一个SPA.我来自桌面应用程序开发人员背景,请原谅我,如果这个问题是新手!
当我加载SPA而不是看到启动画面,然后是主屏幕时,我收到此错误消息:
HTTP错误403.14 - 禁止Web服务器配置为不列出此目录的内容.最可能的原因:
未为请求的URL配置默认文档,并且未在服务器上启用目录浏览.
谁能帮忙解决这个问题?
我正在使用Durandal创建一个应用程序,WebAPI作为服务器.我有一个KendoUI网格,可以正确显示来自服务器的数据并正常运行,直到调用POST或PUT方法.这是我的GET方法:

并且您可以看到该数据绑定到UI(使用Durandal中的数据绑定扩展性来更改为kendo绑定):

然后我编辑Grid中的数据,它将请求中的更改传递给服务器,如此Fiddler结果中所示:

在服务器端,我无法获取从客户端传递的数据以绑定到我作为POST或PUT上的方法的参数放置的任何内容.

我意识到这是几种不同的故障排除技术(例如Durandal,KnockoutJs,Kendo DataBinding和WebAPI),但我认为基础工作正在运行,数据被检索并绑定到UI,并在更改时发回,但WebAPI端点无法绑定到数据.
如何通过WebAPI中的ModelBinding结构获取传递的"models"数组?
更新 - 这是一个有用的JSFiddle,它给了我正确的Content-Type来添加:http://jsfiddle.net/Xhrrj/1/
new kendo.data.DataSource({
transport: {
read: {
type: "POST",
url: "../cccs/service.svc/SupplierSearch",
contentType: "application/json; charset=utf-8",
dataType: 'json'...
这是从Telerik的论坛来这里
我已经熟悉了Knockout,Angular,Sammy,jQuery,有点微风,和少许灰烬.所有教程和入门Durandal似乎都在说......首先添加jQuery并且可能是淘汰赛.
它能处理与所有这些完全不同的东西吗?它有什么需要解决它可能与淘汰赛一起使用?
它只是客户端路由和ui组件的大杂烩吗?
它在概念上有什么作用?
我正在查看Durandal样本,试图了解路由的工作原理.
shell.js指定了这些路由:
{ route: ['', 'knockout-samples*details'], moduleId: 'ko/index', title: 'Details...', nav: true, hash: '#knockout-samples' },
{ route: 'view-composition',moduleId: 'viewComposition/index', title: ...
Run Code Online (Sandbox Code Playgroud)
在knockout-samples:
{ route: '', moduleId: 'helloWorld/index', title: 'Hello World', type: 'intro' },
{ route: 'helloWorld', moduleId: 'helloWorld/index', title: 'Hello World', type: intro', nav: true},
Run Code Online (Sandbox Code Playgroud)
我想要实现的是拥有另一个层次结构helloWorld.像这样的东西:

我试过这个但没有运气:
{ route: '', moduleId: 'helloWorld/index', title: 'Hello World', type: 'intro' },
{ route: 'helloWorld*details', moduleId: 'helloWorld/index', title: 'Hello World', type: 'intro', nav: true, hash:'#knockout-samples/helloWorld'}
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用.
Durandal路由不支持此级别的导航吗?
Durandal有一个名为shell的基本视图.
我在其上添加了一个搜索框,以允许管理员/质量保证用户模仿任何系统用户.在按钮上单击我希望能够更新当前显示的视图的视图.

我将如何进行,在我的子视图上公开一个函数,以便我可以从shell调用它,或从子视图挂钩到shell的按钮单击事件.
题:
Durandal是否公开了我可以使用的钩子来冒泡或将事件传递给不同的视图或父容器?
我们一直在努力让我们的PhoneGap 2.9,Durandal 2.0应用程序在Windows Phone 8上运行.我们已经能够按照步骤通过visual studio将应用程序部署到模拟器和设备.但是,当应用程序在VS中构建时,我们遇到问题,然后使用应用程序部署工具将完成的.xap部署到设备.启动屏幕加载但显示黑屏.
我们已经更正了www的路径,如本博客文章http://mikaelkoskinen.net/durandal-phonegap-windows-phone-8-tutorial/所示,该应用程序使应用程序在模拟器上工作,但不在设备上.
我们还尝试使用phonegap构建xap,因为它现在支持测试版的Windows Phone 8 - http://phonegap.com/blog/2013/10/18/2013-10-18-phonegap-build-support-for -windows-phone-8 /.这已经返回了类似的结果.
我们相信main.js和index.html文件正在被正确加载,但问题是以某种方式使用requirejs和durandal 2.
是否有其他人成功使用这种工具组合(或更新的版本),如果是这样,他们知道我们哪里出错了.
durandal ×10
knockout.js ×5
hottowel ×3
cordova ×1
durandal-2.0 ×1
javascript ×1
json ×1
kendo-ui ×1
knockout-2.0 ×1
knockout-mvc ×1
kogrid ×1
mvvm ×1
parent-child ×1
viewmodel ×1