gpt4 book ai didi

javascript - 结合 AngularJS、RequireJS 和 asp.NET 时出错

转载 作者:行者123 更新时间:2023-11-29 15:42:29 25 4
gpt4 key购买 nike

我正在尝试使用 asp.NET Web API、AngularJS 和 RequireJS 启动一个项目。我在关注 this种子项目,但一直没有成功。

我当前的文件夹结构如下所示:

css/
main.css
normalize.css
img/
js/
controllers/
myctrl2.js
lib/
angular/
angular.js
jquery/
jquery-1.9.1.min.js
require/
require.js
text.js
app.js
controllers.js
directives.js
filters.js
main.js
routes.js
services.js
partials/
partial1.html
partial2.html
Default.cshtml

这是我的 app.js:

define([
'angular',
'filters',
'services',
'directives',
'controllers'
], function (angular, filters, services, directives, controllers) {
'use strict';

return angular.module('myApp', ['myApp.controllers', 'myApp.filters', 'myApp.services', 'myApp.directives']);
});

这是我的 main.js:

require.config({
paths: {
jquery: 'lib/jquery/jquery-1.9.1.min',
angular: 'lib/angular/angular',
text: 'lib/require/text'
},
shim: {
'angular': { 'exports': 'angular' }
},
priority: [
"angular"
]
});

require([
'jquery',
'angular',
'app',
'routes'
], function ($, angular, app, routes) {
'use strict';
$(document).ready(function () {
var $html = $('html');
angular.bootstrap($html, ['myApp']);
// Because of RequireJS we need to bootstrap the app app manually
// and Angular Scenario runner won't be able to communicate with our app
// unless we explicitely mark the container as app holder
// More info: https://groups.google.com/forum/#!msg/angular/yslVnZh9Yjk/MLi3VGXZLeMJ
$html.addClass('ng-app');
});
});

最后,这是我的 default.cshtml:

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>360</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width">

<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/main.css">
<script data-main="js/main" src="js/lib/require/require.js"></script>
</head>
<body>
<h1>AngularJS + RequireJS</h1>
<ul class="menu">
<li><a href="#/view1">View 1</a></li>
<li><a href="#/view2">View 2</a></li>
</ul>
<div ng-view></div>

</body>
</html>

Default.cshtml 完全加载,直到 <div ng-view></div> .它不会加载任何超出此范围的内容,并且 <html>标签没有被赋予属性 ng-app .我还在控制台中收到以下错误:

Uncaught SyntaxError: Unexpected token < 

知道为什么会这样吗?我在类似问题上找到的唯一解决方案是在 document.ready 上创建 Angular 对象,然后添加 ng-app属性,我已经在做。

谢谢!

最佳答案

罪魁祸首是这段代码,之前添加到我的 Web.config 中:

<system.webServer>
<rewrite>
<rules>
<rule name="Default" stopProcessing="true">
<match url="^(?!images|content|scripts|favicon|robots).*" />
<action type="Rewrite" url="Default.cshtml" />
</rule>
<rules>
</rewrite>
</system.webServer>

这导致 require.js 被解释为文本/html 文件,并导致错误消息。

关于javascript - 结合 AngularJS、RequireJS 和 asp.NET 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17054111/

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