gpt4 book ai didi

javascript - 不断出现 AngularJS 模块不可用的情况 (ASP.NET 5)

转载 作者:行者123 更新时间:2023-12-03 07:33:07 25 4
gpt4 key购买 nike

尝试在现有的 ASP.NET 5(核心)项目中使用简单的 Angular DI。已关注 this教程。

版本:

  • AngularJS 1.4.6
  • ASP.NET 5 (vNext)
  • Visual Studio 2015
  • Windows 10

检查了命名等方面的所有基本问题。不清楚 Angular 如何发现我的依赖 js 文件“controllers.js”和“services.js”?

如果我明确包含它们 - 根据教程不应要求 - 我仍然得到

[ng:areq] Argument 'customerController' is not a function, got undefined

索引.html

<!DOCTYPE html>
<html ng-app="bonusapp">
<head>
<meta charset="utf-8" />

<link href="lib/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet" />
<link href="lib/bootswatch/yeti/bootstrap.min.css" rel="stylesheet" />

<link href="css/main.css" rel="stylesheet" />

<script type="text/javascript" src="lib/angular/angular.js"></script>
<script type="text/javascript" src="lib/angular-resource/angular-resource.js"></script>
<script type="text/javascript" src="lib/angular-route/angular-route.js"></script>

<script src="lib/app.js"></script>
<!--<script>angular.bootstrap(document, ['app']);</script>-->
</head>
<body ng-cloak>

<div id="wrapper" ng-controller="customerController">
<div id="main" class="container-fluid">
<div class="row">
<div class="col-md-3">
<h2>Kunder</h2>
<ul>
<li ng-repeat="item in Models">
{{item.FirstName}} {{item.LastName}} <a>Redigera</a> <a>Radera</a>
</li>
</ul>
</div>
</div>
</div>

<script type="text/javascript" src="lib/jquery/dist/jquery.min.js"></script>
<script type="text/javascript" src="lib/bootstrap/dist/js/bootstrap.min.js"></script>
<script type="text/javascript" src="lib/jquery-validation/dist/jquery.validate.js"></script>
<script type="text/javascript" src="lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>
</body>

</html>

app.js

(function () {
'use strict';

// Define module "app"
angular.module('bonusapp', [
// Angular modules
'ngRoute',
'ngResource',

// Custom modules
'customerService'

// 3rd Party Modules

]);
})();

controllers.js

(function () {
'use strict';

// Assign controller to app
angular
.module('bonusapp')
.controller('customerController', [
customerController]);

// $inject() method call is required to enable the controller to work with minification.
customerController.$inject = [
'$scope',
'Customers'
];

// Construct controller
function customerController($scope, Customers) {

// Populate model from service
$scope.Models = Customers.get();
}
})();

services.js

(function() {
'use strict';

var customerService =
angular
.module('customerService', ['ngResource']);

customerService
.factory('Customers',
['$resource'],

function ($resource) {
return $resource('/api/customers', {}, {
// Service call to get Customers
get: {
method: 'GET',
params: {},
isArray: true
}
});
}
);

})();

最佳答案

正如 Win 所建议的,我需要:

  • 修复包含顺序以将 jQuery 放在第一位
  • 包含我所有的 JS 文件

但是我仍然遇到一些问题。作为引用,以下是固定脚本:

Controller .js

(function () {
'use strict';

// Construct controller
// Remarks: controller is now declared FIRST
var customerController = function ($scope, Customers) {

$scope.Title = "Title";

// Populate model from service
$scope.Models = Customers.get();
}

// $inject() method call is required to enable the controller to work with minification.
customerController.$inject = [
'$scope',
'Customers'
];

// Assign controller to app
angular
.module('bonusapp')
.controller('customerController',
customerController);

})();

services.js

(function() {
'use strict';

var customerService =
angular
.module('customerService',
['ngResource']);

customerService
.factory('Customers',
['$resource',

function ($resource) {
return $resource('/api/customers', {}, {
// Service call to get Customers
// Remarks: 'get' in single quotes
'get': {
method: 'GET',
params: {},
isArray: true
}
});
}
]);

})();

关于javascript - 不断出现 AngularJS 模块不可用的情况 (ASP.NET 5),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35732190/

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