在整个应用程序中设置ngRoute会产生问题。许多视图中使用的控制器依赖于从ASP.NET控制器中的数据库中获取的脚本。这是一个例子:
Angular App
var app = angular.module("app", ["ngRoute"])
.config(["$routeProvider", "$locationProvider", function($routeProvider, $locationProvider) {
$routeProvider
.when("/Template/:id", {
templateUrl: function(arg) { return "/User/Template/Details/" + arg.id },
controller: "FormController"
});
$locationProvider.html5Mode(false).hashPrefix("!");
}]);
Razor查看Details.cshtml:
@{
Layout = null;
}
<head>
<script type="text/javascript">
alert('triggered');
angular.module("app").controller("FormController", ["$scope", function ($scope) {
alert("not triggered");
$scope.xyz = 1;
}]);
</script>
</head>
<div id="template-details" class="col-xs-12" ng-controller="FormController" ng-cloak>
<span>{{xyz}}</span>
</div>
它加载视图就好了,除了它不启动控制器(使用ViewBag代码)。脚本块执行得很好(使用第一个alert()测试)。
答案 0 :(得分:0)
当你得到controller is undefined
时,要记住几件事:
Angular App
脚本FormController
FormController
div位于ng-app="app"
div
。ng-route
之后加载angular
。我已根据您提供的内容创建了JsFiddle,但效果很好。