Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Requirejs 需要在html脚本标记中定义js模块_Requirejs - Fatal编程技术网

Requirejs 需要在html脚本标记中定义js模块

Requirejs 需要在html脚本标记中定义js模块,requirejs,Requirejs,我试图在html中的脚本标记中为我的应用程序的初始配置选项定义一个模块。但我得到了以下错误: Error: Module name "options" has not been loaded yet for context: _. Use require([]) http://requirejs.org/docs/errors.html#notloaded 以下是html: <script src="Scripts/require.js" data-main="/Recruiter/te

我试图在html中的脚本标记中为我的应用程序的初始配置选项定义一个模块。但我得到了以下错误:

Error: Module name "options" has not been loaded yet for context: _. Use require([]) http://requirejs.org/docs/errors.html#notloaded
以下是html:

<script src="Scripts/require.js" data-main="/Recruiter/temp-search/App/main"></script>
<script> 

    define('options',['jquery'],function($) {        
        return options = {
            salesPhoneNumber : '@ConfigurationManager.AppSettings.Get("SalesPhoneNumber")',
            saleInfoMessage : "To access Temp Search candidate details, please call our team on " + salesPhoneNumber,
            subscriptionInfo : @Html.Raw(new JavaScriptSerializer().Serialize(Model.AccessInfo ?? null)),
            questionProLink: src="@(Request.Url.Scheme)://www.questionpro.com/a/TakeSurvey?id=@(Model.IsRecCon ? AppSettings.SurveyRecConId : AppSettings.SurveyOthersId)&amp;custom1=@Model.RecruiterEmail&amp;custom2=@Model.RecruiterId",
            surveyEnabled: '@AppSettings.FlexSurveyEnabled',
            whatsNewUrl: '@AppSettings.UrlWhatsNew',
            salesPhoneNumber:salesPhoneNumber,
            showSaleInfo: '@ViewBag.ShowSaleInfo',
            fileDownloadFailCookieName:'@AppSettings.FileDownloadFail',
            urls: {
                signInUrl: '@string.Format("https://{0}/recruiter/account/signIn", Url.RequestContext.HttpContext.Request.Url.Host)',
                signInTempsHome: '/recruiter/temp-search/home',
                signInTempsSearch: '/recruiter/temp-search/api/temps',
                checkAvailabilityUrl: '/recruiter/temp-search/api/availability',
                searchUrl: '/recruiter/temp-search/api/temps/search',
                accesslimitUrl: '/recruiter/temp-search/api/ecruiters/accessinfo',
                previewUrl: '/recruiter/temp-search/api/temps/preview'
            },
            elements: {
                signInRegisterDialog: $("#signInRegisterDialog"),
                noSubscriptionDialog: $("#noSubscriptionDialog"),
                searchForm: $("#searchForm"),
                searchKeywords: $("#Keywords"),
                searchLocation: $("#Location"),
                searchRadius: $("#Radius"),
                searchSortBy: $("#sortBy"),
                searchTemp: $("#Temporary"),
                searchContract: $("#Contract"),
                searchPayRateFrom: $("#PayRateFrom"),
                searchPayRateTo: $("#PayRateTo"),
                searchAvailability: $("#AvailabilityConfirmed"),
                locationErrorMsg: $("#locationErrorMsg"),
                checkAll: $(".checkAll"),
                checkCandidate: $(".checkCandidate"),
                availability: {
                    availabilityBtn: $("#availabilityBtn"),
                    availabilityDialog: $("#availabilityDialog"),
                    additionalInformation: $("#AdditionalInformation"),
                    jobPosition: $("#JobPosition"),
                    jobLocation: $("#JobLocation"),
                    payRate: $("#JobPayRateFrom"),
                    payRateTo: $("#JobPayRateTo"),
                    startOn: $("#StartOnDate"),
                    duration: $("#Duration"),
                    checkAvailabilityForm: $("#checkAvailabilityForm"),
                    availabilityLocation: $("#checkAvailabilityForm #JobLocation"),
                    candidateIds: $("#CandidateIds"),
                    tempJobId: $("#TempJobId"),
                    msgPanel: $("#msgPanel"),
                    msg: $(".msg"),
                    errorAvailability: $("#availabilityError"),
                    availabilityConfirmationDialog: $("#availabilityConfirmationDialog"),
                    infoBubbleMessage : $("#infoBubbleMessage"),
                    availabilityConfirmationMsg: $("#availabilityConfirmationDialog .msgDialog"),
                    downloadInfoLink : $("#downloadInfoLink")
                },
                preview: {
                    previewBtn: $('.previewBtn')

                },
                messagePanel: $("#messagePanel")
            },
            minWageRate : @Constants.Range.ApprenticeshipsPerHourMin,
            authentication : @(Request.IsAuthenticated.ToString().ToLower()),
            minDate: '@String.Format("{0:yyyy/MM/dd}", DateTime.Now)',
            pageInfo: {
                number: @Model.Results.PageNumber,
                size: @Model.Results.PageSize,
                resultsCount: @Model.TotalResultsCount
            },
            criteria : @Html.Raw(new JavaScriptSerializer().Serialize(Model.Criteria)),
            remainingAccessLimit: @Model.AccessInfo.Remaining,
            totalAccessLimit: @Model.AccessInfo.Limit,
            availableCandidates: @Model.AvailableCandidates,
            candidates: @Html.Raw(new JavaScriptSerializer().Serialize(Model.Results ?? Model.Results.ToJSON()))
        };
    })
</script>

定义('options',['jquery'],函数($){
返回选项={
salesPhoneNumber:'@ConfigurationManager.AppSettings.Get(“salesPhoneNumber”),
saleInfoMessage:“要访问临时搜索候选人详细信息,请致电“+salesPhoneNumber,
subscriptionInfo:@Html.Raw(新的JavaScriptSerializer().Serialize(Model.AccessInfo??null)),
questionProLink:src=“@(Request.Url.Scheme)://www.questionpro.com/a/TakeSurvey?id=@(Model.IsRecCon?AppSettings.SurveyRecConId:AppSettings.SurveyOthersId)&;custom1=@Model.createrEmail&;custom2=@Model.createrId”,
surveyEnabled:“@AppSettings.FlexSurveyEnabled”,
whatsNewUrl:“@AppSettings.UrlWhatsNew”,
salesPhoneNumber:salesPhoneNumber,
showSaleInfo:“@ViewBag.showSaleInfo”,
fileDownloadFailCookieName:“@AppSettings.FileDownloadFail”,
网址:{
signInUrl:“@string.Format”(“https://{0}/recruiter/account/signIn”,Url.RequestContext.HttpContext.Request.Url.Host)”,
签名姓名:“/recruiter/temp search/home”,
签名搜索:“/recruiter/temp search/api/temps”,
checkAvailabilityUrl:“/recruiter/temp search/api/availability”,
searchUrl:“/recruiter/temp search/api/temps/search”,
accesslimitUrl:“/recruiter/temp search/api/ecruiters/accessinfo”,
previewUrl:“/recruiter/temp search/api/temps/preview”
},
要素:{
signInRegisterDialog:$(“#signInRegisterDialog”),
noSubscriptionDialog:$(“#noSubscriptionDialog”),
searchForm:$(“#searchForm”),
搜索关键字:$(“#关键字”),
搜索位置:$(“#位置”),
搜索半径:$(“#半径”),
搜索排序:$(“#排序”),
searchTemp:$(“#临时”),
搜索合同:$(“#合同”),
searchPayRateFrom:$(“#PayRateFrom”),
searchPayRateTo:$(“#PayRateTo”),
searchAvailability:$(“#Availability已确认”),
locationErrorMsg:$(“#locationErrorMsg”),
checkAll:$(“.checkAll”),
checkCandidate:$(“.checkCandidate”),
可用性:{
可用性BTN:$(“#可用性BTN”),
可用性对话框:$(“#可用性对话框”),
额外信息:$(“#额外信息”),
职位:$(“#职位”),
工作地点:$(“#工作地点”),
工资率:$(“#工作工资率从”),
薪酬目标:$(“#工作薪酬目标”),
startOn:$(“StartOnDate”),
持续时间:$(“持续时间”),
checkAvailabilityForm:$(“#checkAvailabilityForm”),
可用性位置:$(“#检查可用性表格#作业位置”),
候选项:$(“#候选项”),
tempJobId:$(“#tempJobId”),
msgPanel:$(“#msgPanel”),
味精:$(“.msg”),
errorAvailability:$(“#availabilityError”),
可用性确认对话框:$(“#可用性确认对话框”),
infoBubbleMessage:$(“#infoBubbleMessage”),
AvailabilityConfigurationMsg:$(“#AvailabilityConfigurationDialog.msgDialog”),
下载信息链接:$(“#下载信息链接”)
},
预览:{
previewBtn:$('.previewBtn')
},
messagePanel:$(“#messagePanel”)
},
minWageRate:@Constants.Range.学徒制,
身份验证:@(Request.IsAuthenticated.ToString().ToLower()),
minDate:“@String.Format(“{0:yyyy/MM/dd}”,DateTime.Now)”,
页面信息:{
编号:@Model.Results.PageNumber,
大小:@Model.Results.PageSize,
ResultCount:@Model.totalResultCount
},
条件:@Html.Raw(新的JavaScriptSerializer().Serialize(Model.criteria)),
remainingAccessLimit:@Model.AccessInfo.Remaining,
totalAccessLimit:@Model.AccessInfo.Limit,
availableCandidates:@Model.availableCandidates,
候选项:@Html.Raw(新的JavaScriptSerializer().Serialize(Model.Results??Model.Results.ToJSON()))
};
})

问题不在于问题中显示的代码,而在于如何要求RequireJS加载模块。执行此表单的
require
调用时会显示错误消息:

var foo = require('foo');
除非已经加载了
foo
,否则这种
require
调用不起作用,为了确保它已经加载,您可以自己手动加载,也可以让RequireJS帮您加载。然而,要让RequireJS为您完成这项工作,您需要以某种方式编写代码。如果您想让模块使用
foo
,并且您想使用上面的
require
,那么您应该执行以下操作:

define(function (require) {
    var foo = require('foo');
    ...
});
或者,如果需要使用
模块
导出
,则回调可以是
函数(require,exports,module){…

此外,还应按此顺序执行以下操作:

  • 加载要求js

  • 执行
    define('options'),…

  • 然后并且只有在那时才开始加载应用程序

  • 这意味着删除
    data main
    并在
    define('options')之后使用显式的
    require
    调用