我试图在durandal项目中实现gump,正如durandal gump文档中所解释的那样
main.js文件已成功构建,但当尝试单击将打开模式对话框的内容时,它将显示以下错误(firefox):
TypeError: req.toUrl is not a function
url = req.toUrl(nonStripName),
main.js (line 48306, col 16)
这是我在gullfile.js 上的配置
var gulp = require('gulp');
var durandal = require('gulp-durandal');
gulp.task('default', function(cb)
{
durandal({
baseDir: 'public_html/app',
main: 'main.js',
output: 'main.js',
almond: true,
minify: false
})
.on('error', function(err) {
console.error('error. ' + err);
})
.pipe(gulp.dest('public_html/build'))
.on('end', cb);
});
我也得到了这个答案https://stackoverflow.com/a/23329383/1889014
但我不确定这是否与我的问题有关。
有人能帮助或引导我度过难关吗?谢谢
我在使用gump、Durandal和模态对话框时也遇到了这个问题。在视图模型中添加一个返回视图url的getView函数可以修复它
例如
function getView() {
return "views/theView.html";
}
我确信一定有更好的方法来解决这个问题,但这似乎在我需要的几个地方都有效。
由于使用错误的大小写写入视图名称,我遇到了此错误。例如,如果文件名为myView.html,但您需要"myView"。
我不使用gulp-durandal构建,因为它会给出非常奇怪的错误,而requirejs直接工作得更好。我通过在requirejs构建配置中手动包含所有视图来修复这个错误。
include: [
'text!customWidgets/alertsSection/title.html', //custom
'text!customWidgets/alertsSection/body.html', //custom
'text!customWidgets/exclusions/body.html', //custom
'text!customWidgets/exclusions/title.html', //custom
'text!customWidgets/submit/body.html', //custom
'text!customWidgets/submit/title.html', //custom
]
由于durandal的性质和视图的动态加载,我的包中还有更多的文件。。。但我不想向所有人发送垃圾邮件:)