早上好,
我正在构建一个 MVC5 应用程序,其中包含一个 SPA(单页应用程序),它在我更大的 ASP.NET MVC5 应用程序的一小部分中运行。
所以这是我的角度应用程序设置:
var storeApp = angular.module('AngularStore', ['ngRoute']).
config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
$routeProvider.
when('/shop', {
templateUrl: 'Templates/browse.html',
controller: storeController
}).
otherwise({
redirectTo: '/'
});
$locationProvider.html5Mode(true);
}]);
如您所见,它加载了browse.html,它是一个html 模板。
我的_Layout.cshtml文件在顶部注册了 Angular 应用程序:
<html lang="en" ng-app="AngularStore">
在这里,与任何 ASP.NET MVC 应用程序一样,它还具有以下内容:
@RenderBody()
ASP.NET Mvc 将Index.cshtml加载到渲染主体中。
这是我的 Index.cshtml:
@{
ViewBag.Title = "Shop";
ViewBag.InitModule = "AngularStore";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@section MyScripts
{
<script src="~/js/product.js" type="text/javascript"></script>
<script src="~/js/store.js" type="text/javascript"></script>
<script src="~/js/shoppingCart.js" type="text/javascript"></script>
<script src="~/js/app.js" type="text/javascript"></script>
<script src="~/js/controller.js" type="text/javascript"></script>
}
<div ng-view></div>
如您所见,具有ng-view角度属性的 div 是我的 browse.html 模板将被加载的位置。
这一切都按预期工作,但这是我的难题。
我的 browse.html 模板是产品列表。您可以单击“添加到购物车”,然后 Angular 将产品添加到购物车。
问题是我希望购物车中的物品数量和货币价值出现在 _Layout.cshtml 上。因此,从本质上讲,无论模板角度负载如何,计数和货币都会出现。
所以,我想在我的 _Layout.cshtml 的顶部(标题)中放置一些有角度的东西,它会查看购物车并显示计数和货币价值。
这可能很容易,但我无法弄清楚如何让它工作并以正确的方式构建它。
也许我需要在我的 _Layout.cshtml 上使用 ng-contoller?
任何指针将不胜感激。
如果你住在墨尔本,我会给你买啤酒!
谢谢拉斯