等待异步完成后再返回
此代码返回一个配置对象,并最终用敲除观测值填充它. define("config", [], function () { var config = {}; $.ajax({ url: "api/Config", success: function (result) { for (pname in result) config[pname] = ko.observable(result[pname]); }, }); return config; }); 它在用设置填充配置对象的方面起作用,但是直到我的一个视图应用绑定后才能完成,这会在运行时引起问题. 在返回config对象之前,您将如何将此设置为等待Ajax查询的结果?我的第一个想法是使用一个承诺对象,但我看不到如何应用它. 我不是在寻找解决方法,我已经有一个: define("config", [], function () { var
6 2024-01-26
编程技术问答社区
将AMD模块作为Aurelia ViewModel使用
我正在和Aurelia一起玩,看起来很不错,我将Durandal用于某些项目,这绝对适合我的需求. 使用EC6的新类定义很棒.但是现在我正在准备一些需要使用requirej的经典AMD模块的东西,类似于此: define("testModule", [], function() { "use strict"; console.log('testModule loaded'); var testModule = function() { var that = this; this.variable = 10; that.getVariable = function(){ alert('function executed ' + that.variable); }; } return testModule; }); 遵循Aurelia的文档,
2 2024-01-26
编程技术问答社区
durandal:在ViewModels之间传递数据的最佳方式
durandal:如果可能的话,在视图模型之间传递数据(参数)的正确方法是什么(不处理后端). 说我有2个视图概述和详细信息我希望从概述上使用用户klick在列表元素上它采用ID该元素的内容并将其传递给详细信息 ViewModel,以便我可以开始使用该ID. 谢谢您的帮助 解决方案 提示:您可能想要路由驱动的方法.另一个是为了完整. ViewModel驱动的方法 通常,我会说:创建一个模块,我们称其为数据,然后将数据模块注入两个视图模型.然后,概述可以在数据模块上设置ClickEdElementID属性,并且详细信息可以读取属性的值并使用它(您甚至可以使属性可观察到可观察到的属性,以便在通过概述更改属性时通知详细信息).当两种视图模型都可以同时处于活动状态时,这种方法才能起作用,而我的下一个解决方案仅在您从一个视图到另一个视图的情况下才起作用,因此它们永远不会同时活跃.这种" ViewModel-driven"方法是我个人用于应用程序中常见数据的(您还可以将您的
0 2024-01-21
编程技术问答社区
如何使一个SPA的搜索引擎可被抓取?
我一直在研究如何根据Google的指令.即使有很多一般的解释,我在任何地方都找不到更彻底的逐步教程,其中有实际示例.完成此操作后,我想分享我的解决方案,以便其他人也可以利用它,并可能进一步改进它. 我将MVC与Webapi控制器一起使用, phantomjs 在服务器端, durandal 在客户端,push-state启用;我还使用 breezejs 进行客户端数据交互,我强烈建议所有这些,但我会尝试给出足够的一般解释这也将帮助人们使用其他平台. 解决方案 开始之前,请确保您了解Google 客户端 在客户端,您只有一个HTML页面,该页面通过AJAX调用动态与服务器交互.这就是水疗中心的目的.客户端中的所有a标签都是在我的应用程序中动态创建的,稍后我们将看到如何使这些链接在服务器中可见的Google bot可见.每个这样的a标签都需要能够在href标签中具有pretty URL,以便Google的bot将其爬网.您不希望在客户端单击它时使用href零件(即使您希望服务
2 2024-01-20
编程技术问答社区
使用Durandal JS自动完成文本框
如何使用Durandal JS创建一个自动完成的文本框.给定代码不起作用. ViewModel(JS) define(['repositories/customerRepository', 'plugins/router', 'plugins/http', 'durandal/app', 'knockout'], function (customerRepository, router, http, app, ko) { return { router: router, activate: function () { var data = customerRepository.listMovies(); $(function () { $("#movie").autocomplete({ source: data, focus: function (eve
2 2024-01-18
编程技术问答社区
Fancybox v2不能与Durandal一起工作
我无法与Durandal一起使用Fancybox.我将John Papa的热毛巾模板作为我的起点. 问题:每当我单击图像时,它都会导航到图像路径,而不是将其叠加在页面顶部. 库:jQuery v 1.9.1&Fancybox 2.1.4. 查看: ViewModel: define(['service
0 2024-01-18
编程技术问答社区
Chrome//kendoUI/jQuery。超过了最大调用栈的大小
我正在使用Hottowell模板来创建Spa应用程序,并且我从JQuery那里获得了一个很好的错误.基本上我的问题从现在开始,以尝试从 ViewModelBinder.js(来自Durandal库). viewModelBinder.beforeBind(obj, view); action(); viewModelBinder.afterBind(obj, view); 目前要执行此代码之前致电(我自己的应用程序的main.js) kendo.ns = "kendo-"; viewModelBinder.beforeBind = function (obj, view) { kendo.bind(view, obj.viewModel || obj); }; kendo.bind是类似的(kendo.web.js来自kendo ui库): function bind(dom, object) { var idx, length, roles =
0 2024-01-14
编程技术问答社区
使用Durandal SPA模板的MVC认证和防伪令牌
我的水疗中心的某些区域需要向所有用户开放,并且某些领域需要身份验证.在这些领域,我要保护的是通过Ajax加载的数据. 我有一个身份验证服务(请参见下文),我将其作为durandal main.js 的依赖性添加.该服务称为: authentication 在我的 main.js 中我称呼 authentication.handleUnauthorizedAjaxRequest(function () { app.showMessage('You are not authorized, please login') .then(function () { router.navigateTo('#/user/login'); }); }); 它警告他们未获得授权的用户,并将用户导航到登录视图/ViewModel,他们可以在其中输入详细信息并尝试登录. 构建此身份验证视图模型时会想到
2 2024-01-13
编程技术问答社区
Parallel.js在IE中的Blob问题
我需要在"并行"中执行函数,并且使用parallel.js: var p = new Parallel(items); var fn1 = function (item) { doSomething(item); }; p.map(fn1).then(function () { otherFunction(); }); 但IE显示以下错误: [Q] Unhandled rejection reasons (should be empty): (no stack) SecurityError HTML7007: One or more blob URLs were revoked by closing the blob for which they were created. These URLs will no longer resolve as the data backing the URL has been freed. 如何解决此错误
8 2023-12-03
编程技术问答社区
hottowel asp.net mvc4中基于用户的路线和子路线
:更新 任何人都可以帮助我找到如何根据用户创建路线和子例程 是否可以创建一个这就是我的菜单看起来像(注意:所有菜单项一起允许我们称之为 Master ): -Home -shop -men -women -food -dog -human -cart -settings -user -images -themes 说我有以下用户组: -Admin -visitors -vip -costumers -co-workers 我想做的事情像 if(user == Admin){ destroy the current menu then make a copy of master **master** remove subroute women and subroute dog then push }else if(user == visitor){ ... } 或者有更好的方法来定义它
6 2023-11-24
编程技术问答社区
在Visual Studio中作为后期构建过程构建时,durandal优化器引用了错误的路径
我在Visual Studio中设置了一个后构建事件,用于使用Durandal的优化器(使用Nodejs)来构建用于生产的主构建.js文件.出现错误,说找不到主构建.我相信这是因为它没有正确地引用我的项目.我的基本目录在C:\ Projects \ MyApp \ MyApp.它只是从c:\ projects \ myapp. 有没有办法告诉它正确的目录? 这是一些输出. if 'Release'=='Release' C:\Projects\myapp\myapp\\App\durandal\amd\optimizer.exe Using default base configuration. Configuring for deploy with almond (custom). { "name": "durandal/amd/almond-custom", "inlineText": true, "stubModules": [
2 2023-11-23
编程技术问答社区
如何将数据(选定的项目)传递给Durandal组成的详细视图?
我已经开始使用(几个小时前) durandal 希望能够管理视图并允许构图在一个页面中 - 以前的方法(也使用敲除)变得太笨拙了,无法在胖html文件中维护. 我已经安装/设置了durandal,我可以创建视图和视图模式 - 但是,我不知道如何将数据纳入 用作基础 >对于新的ViewModel. 例如,我有一个用于选择项目的"左导航栏" - 当选择项目时,它会在当前模型中更新一个可观察到的"选定项目",但是它也应该 加载正确的右侧的"详细视图":因为尝试Durandal将组件/视图分开的部分原因应来自单独的视图/ViewModel. 我已经阅读了该文档,包括 coption 和使用构图,但是对于 如何将数据传递给ViewModel的方法对我来说尚不清楚.似乎我可以使用现有模型的视图(在当前视图/范围中),但我真的只想使用当前的一些模型数据(即ID)来获取"真实"模型数据视图. 因此,我的问题; 如何将初始数据(例如"选定的项目""传递给已处理的视图?我宁愿使
2 2023-11-19
编程技术问答社区
敲定日期验证不能正确工作
我需要以局部格式验证日期(SK),而敲除验证是不可能的. 我正在使用: 杜兰达1.2.0 淘汰2.3.0 敲除验证 https://github.com/knockout-com/knockout-contrib/knockout-contrib/knockout-validation-validation-validation /p> 我需要这样的事情才能工作: var newStartDate = ko.observable() .extend({ required: { message: 'Start date is required.' }, date: true, formattedDate: { format: 'ddMMyyyy', delimiter: '.' } }); 然后,如果我调用newstartdate.isvalid(),我会得到以下结果: newStartDate(""); false (OK) newStartDate("
8 2023-11-12
编程技术问答社区
在TypeScript中使用声明模块的类型
我正在浏览durandaljs.com网站上的durandal"入门"指南,除了我尝试使用Typescript进行操作.最后一个演示(Mount Rainier One)的模块具有这样的代码: define(function (require) { var http = require('plugins/http'), ko = require('knockout'); //other stuff } 当我在浏览器中运行代码时,一切正常,但是我想看看是否可以让Typescript了解类型.我从肯定地导入了杜兰达,淘汰,jQuery和requienjs nuget套件,我能够通过执行 键入ko变量 ko : KnockoutStatic = require('knockout'); 这起作用,因为敲除静电道是敲除d.t.ts文件中声明的接口.但是,在durandal.d.ts文件中,"插件/http"是这样声明的,没有命名接口: declar
12 2023-11-01
编程技术问答社区
如何将Fancybox与Durandal和TypeScript结合使用
我正在忙于原型制作和开发约翰·帕帕(John Papa)的热毛巾模板. 而不是使用JavaScript,我正在使用Typescript并出现一个问题. 当用户单击SPA中的图像时,我希望该图像使用Fancybox弹出.但是我绝对可以实现这一目标.我以为我将fancybox的代码放在de激活功能中,因为每次加载视图时都在调用(我可能在这里错了). 但我还发现了.js(模型视图)在.html之前加载了.html,这意味着ViewModel无法调整.html(我在这里也可能错了). . 我将发布视图和模型. 所有JavaScript库都可以正确加载,正如我在Chrome或Fiddler中所说的. 视图 Details klik me
8 2023-11-01
编程技术问答社区
属性'isvalid'不存在于类型'KnockoutObservable'。
我刚刚开始从JavaScript切换到TypesCipt.我正在使用淘汰赛来获得明显的优势. 我需要定义一个可观察到的敲除,这取决于另一个可观察到的敲除的值.如果可观察到有效,请返回true否则返回false. 这就是我结构代码的方式 - class anyClass { private address: KnockoutObservable = ko.observable().extend({ required : true}); private canPrintAddresses : KnockoutComputed = ko.computed((): any => { if (this.address.isValid()) { return true; } else return false; });
2 2023-11-01
编程技术问答社区
如何在Durandal中为shell viewmodel使用类?
我正在查看热毛巾模板,并试图使其在打字稿中工作,我遇到了一个问题,可以转换Shell ViewModel.我正在尝试将其翻译成TS,对我来说更有意义的是,它应该是一个类,而不是简单地导出函数,如所示在这里.我看着在这里,决定不关注它. 经过一番挖掘,我找到了这是我的main.ts(也包裹在班级中): /// /// /// import _app = module('durandal/app'); import _system = module('durandal/system'); import _viewLocator = module('durandal/viewLocator'); import _router = module('duran
8 2023-11-01
编程技术问答社区
Durandal SPA的问题与typescript
我已将Durandal Spa应用程序从VS_2012更新为VS_2015,其中将生成JavaScript(ECMA5).我解决了所有构建错误.但是我无法修复一个称为 的打字稿错误 "'返回'语句只能在功能主体中使用" 我正在研究视图模型.因此,我需要函数侧面的返回语句. 由于构建错误,我无法生成我的Java-script. 以下是我的示例代码: class typescript1_8{ constructor(){ } } return new typescript1_8(); Java脚本代码需要生成如下: var typescript1_8 = (function () { function typescript1_8() { } return typescript1_8; }()); return new typescript1_8(); 注意:我需要课外返回语句.它不应在上面提到的类型脚本中丢弃
12 2023-10-31
编程技术问答社区
选择中的这个不正确
我正在尝试将Typescript与Durandal一起使用.我正在尝试使起动器示例与Typescript一起使用,该示例适用于大多数方法和类.但是,在下面的Flickr类中,我在SELECT方法中遇到了一个问题.当称之为此方法时,似乎这不是Flickr类,而是所选项目. 有人可以帮我弄清楚怎么了吗? 其他方法正在按预期工作. 亲切的问候, marwijn /// /// /// class Flickr { app: App; http: Http; displayNa
10 2023-10-31
编程技术问答社区