我试着在我的durandal项目中实施gulp作为Durandal gulp doc
的解释main.js文件已成功构建,但在尝试单击将打开模式对话框的内容时,它将显示此错误(firefox):
TypeError: req.toUrl is not a function
url = req.toUrl(nonStripName),
main.js (line 48306, col 16)
这是我在gulpfile.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
但我不确定这是否与我的问题有关。
有人可以帮助或指导我完成这件事吗?谢谢!
答案 0 :(得分:3)
我也使用gulp,Durandal和模态对话框来解决这个问题。将getView函数添加到返回视图url的viewmodel中会修复它。
例如
function getView() {
return "views/theView.html";
}
我确信必须有更好的方法来解决这个问题,但这似乎适用于我需要的几个地方。
答案 1 :(得分:1)
由于使用错误的大小写写视图名称,我遇到了此错误。例如。如果该文件名为myView.html,但您需要' MyView'。
答案 2 :(得分:0)
我没有使用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的性质和动态加载视图,我的include中有更多文件...但我不想向所有人发送垃圾邮件:)