标签: durandal

具有SPA架构的ValidateAntiForgeryToken

我正在尝试设置注册和登录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

10
推荐指数
1
解决办法
1万
查看次数

淘汰赛验证:动态约束

我正在使用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)

knockout-2.0 knockout.js knockout-validation durandal

10
推荐指数
2
解决办法
5942
查看次数

如何将数据(选定项目)传递给Durandal组成的详细视图?

我已经开始使用(几个小时前)Durandal希望在一个页面内管理视图和允许组合 - 之前的方法,也使用Knockout,在一个胖的HTML文件中维护过于笨重.

我已经安装/设置了Durandal,我可以创建视图和视图模型 - 但是,我不知道如何将数据导入 viewmodel以用作新视图模型的基础.

举例来说,我有选择的项目是"左侧导航栏" -当一个项目被选中它更新了"选择项"在当前的模型观察到的,但它应该加载正确的"详细信息视图",在右边:由于部分尝试Durandal分离组件/视图的原因,这应该来自一个单独的视图/视图模型.

我已经阅读了包含CompositionUsing Composition的文档,但是关于如何将数据传递给viewmodel的方法对我来说并不清楚.看起来我可以使用现有模型的视图(在当前视图/范围中),但我真的只想使用一些当前模型数据(即id)来获取"真实"模型数据风景.

因此,我的问题;

  • 如何将初始数据(例如"选定项目")传递给视图模型?我更喜欢使用声明性的"compose:"绑定,因为这就是KO的原因.KO.

  • 这种概念是在这里使用/传递初始数据的正确方法,还是有更好的选择?我看到"activeItem"含糊地提到了,但细节/用法让我很开心.


更新1:我发现我们如何在视图之间共享数据/传递数据视图以进行查看,但实际实现中缺少响应.我真的不想在父子(不同的视图/视图模型对)之间共享viewmodel,我想使用声明式方法(没有事件).父母不需要了解孩子,但孩子需要从父母那里获得数据.


更新2:虽然上面我暗示只需要"id",但我想要一种适用于任何基础对象的方法,路由器不一定适合.在这种情况下,深度链接不是问题.但是,如果你觉得路由器的方式来处理这个,张贴如答案参数(带细节),我会至少给它一个赞成票..

parent-child mvvm viewmodel single-page-application durandal

9
推荐指数
1
解决办法
1万
查看次数

将koGrid与Durandal/HotTowel模板集成

我使用Durandal模板处理asp.net解决方案.

我尝试使用与knockout兼容的koGrid(https://github.com/Knockout-Contrib/KoGrid).在Durandal管理的测试页中插入此网格时,它不起作用:网格似乎在那里但没有正确显示.

我们注意到,如果我们调整窗口大小,则网格会正确调整.

有没有人已经成功将这个koGrid集成到Durandal/HotTowel模板中?

重现问题的步骤:

  • 创建一个新的ASP.NET MVC项目并选择Durandal模板
  • 在项目中添加koGrid(在Nuget中可用)
  • 将此网格放在视图上并添加虚拟数据
  • 运行并显示包含网格的视图

这是一个包含一个ASP.NET MVC项目的zip来重现这个问题:https://www.dropbox.com/s/15rphyhkqp1h8py/KOGrid-HotTowelTemplate.zip

谢谢你的帮助.

knockout.js kogrid durandal hottowel

9
推荐指数
1
解决办法
2830
查看次数

HTTP错误403.14 - 禁止Web服务器配置为不列出此目录的内容

完成了关于Pluralsight的John Papa课程 - 顺便说一句真棒!)

我现在正在创建我的第一个SPA.我来自桌面应用程序开发人员背景,请原谅我,如果这个问题是新手!

当我加载SPA而不是看到启动画面,然后是主屏幕时,我收到此错误消息:

HTTP错误403.14 - 禁止Web服务器配置为不列出此目录的内容.最可能的原因:

未为请求的URL配置默认文档,并且未在服务器上启用目录浏览.

谁能帮忙解决这个问题?

single-page-application durandal hottowel

9
推荐指数
3
解决办法
7万
查看次数

来自JSON的WebAPI模型绑定

我正在使用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的论坛来这里

json model-binding kendo-ui asp.net-web-api durandal

9
推荐指数
1
解决办法
6472
查看次数

durandal的目的是什么?

我已经熟悉了Knockout,Angular,Sammy,jQuery,有点微风,和少许灰烬.所有教程和入门Durandal似乎都在说......首先添加jQuery并且可能是淘汰赛.

它能处理与所有这些完全不同的东西吗?它有什么需要解决它可能与淘汰赛一起使用?

它只是客户端路由和ui组件的大杂烩吗?

它在概念上有什么作用?

durandal

9
推荐指数
3
解决办法
3076
查看次数

Durandal中的多级路由

我正在查看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路由不支持此级别的导航吗?

javascript knockout.js durandal

9
推荐指数
2
解决办法
4438
查看次数

迪朗达尔/淘汰赛.更新其他视图/ viewmodel

Durandal有一个名为shell的基本视图.

我在其上添加了一个搜索框,以允许管理员/质量保证用户模仿任何系统用户.在按钮上单击我希望能够更新当前显示的视图的视图.

  • Shell (Blue) View (Red)

我将如何进行,在我的子视图上公开一个函数,以便我可以从shell调用它,或从子视图挂钩到shell的按钮单击事件.

题:

Durandal是否公开了我可以使用的钩子来冒泡或将事件传递给不同的视图或父容器?

knockout.js knockout-mvc durandal

8
推荐指数
1
解决办法
2881
查看次数

Phonegap 2.9.0,Windows Phone 8,Durandal 2.0,XAP运行时问题

我们一直在努力让我们的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.

是否有其他人成功使用这种工具组合(或更新的版本),如果是这样,他们知道我们哪里出错了.

cordova windows-phone-8 durandal durandal-2.0

8
推荐指数
1
解决办法
760
查看次数