gpt4 book ai didi

javascript - angular 的错误消息 "Failed to instantiate module"仅在资源管理器中

转载 作者:行者123 更新时间:2023-11-30 11:55:03 24 4
gpt4 key购买 nike

我正在尝试创建一个前端带 Angular 聊天应用程序。

我向聊天 Controller 添加了一个名为 isUserTyping 的新函数,并在 chrome 上进行了测试。它工作正常。

但是在资源管理器中,页面不会加载该功能(一旦我删除它,它就可以正常工作)。我在 consoelo 中得到的错误是这样的:

“SCRIPT5022:[$injector:modulerr] 由于以下原因无法实例化模块 mymodule:错误:[$injector:nomod] 模块‘mymodule’不可用!您拼错了模块名称或忘记了加载它。如果注册模块,请确保将依赖项指定为第二个参数。”

我不知道这个错误是什么意思……我在下面附上了我的代码。

如果有人知道是什么导致了资源管理器中的这种情况,我会非常感激。

脚本 js:

var mymodule = angular.module('mymodule', ['ngRoute']);
mymodule.config(function($routeProvider) {
$routeProvider
.when('/', {
templateUrl : 'pages/enter.html',
controller : 'SharedController'
})
.when('/chat', {
templateUrl : 'pages/chat.html',
controller : 'cntrlChat'
});
});


mymodule.factory('myService', function() {
var savedData = {}
var set=function (data) {
savedData = data;
}
function get() {
return savedData;
}

return {
set: set,
get: get
}

});

mymodule.controller('SharedController', ['$scope', 'myService','$location',
function($scope, myService, $location){

$scope.updateMsg = function (msg) {
myService.set(msg);
$location.path("chat");
}

$scope.getMsg = function () {
$scope.message = myService.get();
}

}]);

mymodule.controller("cntrlChat", ['$scope', 'myService','$q','$timeout',
function($scope, myService,$q,$timeout){
var socket = io();
$scope.messages = [];
$scope.room= myService.get();
socket.emit('room', $scope.room);

$scope.submit=function(){
socket.emit('chat_message',{ room: $scope.room, msg: $scope.room+": "+$scope.insertedText });
$scope.insertedText='';
return false;
}

socket.on('chat_message', function(msg){
$scope.$apply(function() {
$scope.messages.push(msg);

});
});

socket.on('info_message', function(msg){
$scope.$apply(function() {
$scope.info=msg;

});
});


$scope.isUserTyping= function() {
var runTwoFunctionWithSleepBetweenThem=function(foo1, foo2, time) {
$q.when(foo1()).then(() => $timeout(foo2, time));
}
runTwoFunctionWithSleepBetweenThem(function (){socket.emit('info_message', { room: $scope.room, msg: 'user is typing...' })},
function (){socket.emit('info_message', { room: $scope.room, msg: '' });},1500);
}

}]);

html

    *<form ng-submit="submit()">
{{info}}
<br>
<input autocomplete="off" ng-model="insertedText" ng-change="isUserTyping()" type="text" />
<button type="button" ng-click="submit()">
Send
</button>
</form>*

最佳答案

你使用的是lambda表达式函数,这种语法是ECMA6语法,任何类型的IE都不支持....

你应该改用函数表达式:

  var runTwoFunctionWithSleepBetweenThem=function(foo1, foo2, time) {
$q.when(foo1()).then(function() {
$timeout(foo2, time);
});
}

关于javascript - angular 的错误消息 "Failed to instantiate module"仅在资源管理器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38283659/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com