1

我尝试按照Durandal gulp doc上的说明对我的 durandal 项目实施 gulp

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

但我不确定这是否与我的问题有关。

有人可以帮助或指导我完成这个吗?谢谢!

4

3 回答 3

3

我在使用 gulp、Durandal 和模态对话框时也遇到了这个问题。将 getView 函数添加到返回视图 url 的视图模型可以修复它。

例如

function getView() {
    return "views/theView.html";
}

我确信必须有更好的方法来解决这个问题,但这似乎在我需要它的少数地方有效。

于 2014-11-27T15:09:11.727 回答
1

由于使用错误的大小写编写视图名称,我遇到了此错误。例如,如果文件名为 myView.html 但您需要“MyView”。

于 2015-12-09T16:04:17.640 回答
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 的性质和视图的动态加载,我的包含更多文件......但我不想向每个人发送垃圾邮件:)

于 2015-06-14T10:23:31.500 回答