我正在尝试使用ASP.NET应用程序来使用Angular JS。
我为我的主页(母版页)定义了应用程序,它运行正常。现在我遇到了其他页面的多个问题。
虽然我定义了一个使用此母版页的子页面,但它必须使用自己的应用程序。所以
Argument 'cityPageCtrl' is not a function, got undefined
在我的母版页中,我添加了以下参考资料:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-cookies.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="<%=ApplicationPath %>lib/js/ui-bootstrap-tpls-0.12.1.min.js"></script>
<script src="<%=ApplicationPath %>cust/js/templateApp.js"></script>
<script src="<%=ApplicationPath %>cust/js/mainPageApp.js"></script>
<script src="<%=ApplicationPath %>lib/js/parallax.min.js"></script>
在我的子页面中,下面是我必须使用另一个应用程序的代码:
<asp:Content ID="Content1" ContentPlaceHolderID="headContent" runat="server">
<script src="../cust/js/cityPageApp.js"></script>
<title ng-bind="'Restaurants in '+cityName+' | Restaurants'">Restaurants in your city serving online | Online Restaurnats</title>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="bodyContent" runat="server">
<div ng-app="cityPage" ng-controller="cityPageCtrl">
</div>
</asp:Content>
以下是我在cityPage js文件中定义App for Angular的内容。
var app = angular.module('cityPage', ['ui.bootstrap', 'templateModule', 'ngCookies']);
app.controller("cityPageCtrl", function($scope, $http, $modal, $cookies, $interval)
答案 0 :(得分:2)
理想情况下,您应该为此创建多个模块。您的子页面应该创建自己的模块,然后将其添加为主模块的引用。
var mainApp= angular.module('main', ['childApp']); //child 1
您也可以尝试使用angular.bootstrap
手动启动 angular.bootstrap(document.getElementById("divId"), ['myChildModule']);
答案 1 :(得分:0)
您可以使用named sections添加每个子页面的脚本文件。
在您的母版页中:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-cookies.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="<%=ApplicationPath %>lib/js/ui-bootstrap-tpls-0.12.1.min.js"></script>
<script src="<%=ApplicationPath %>cust/js/templateApp.js"></script>
<script src="<%=ApplicationPath %>cust/js/mainPageApp.js"></script>
<script src="<%=ApplicationPath %>lib/js/parallax.min.js"></script>
@RenderSection("AngularScripts", required: false)
在您的子页面中:
@section AngularScripts
{
<script src="../cust/js/cityPageApp.js"></script>
}
您应该只引用母版页中的常规脚本文件,并将其他文件移动到适当的子页面。例如,如果“mainPageApp.js”仅适用于一个页面,请将其从母版页中删除并将其放在子页面中。