C# 如何在视图渲染之前调用angularjs get方法调用
我正在尝试使用angular js动态绑定菜单,使用局部视图。。这是正常工作,但我想在视图渲染前绑定菜单 目前,它渲染局部视图和主视图,之后它会使用angular get方法 AngularJs控制器: 局部视图(_Layout.cshtml):C# 如何在视图渲染之前调用angularjs get方法调用,c#,angularjs,asp.net-mvc,C#,Angularjs,Asp.net Mvc,我正在尝试使用angular js动态绑定菜单,使用局部视图。。这是正常工作,但我想在视图渲染前绑定菜单 目前,它渲染局部视图和主视图,之后它会使用angular get方法 AngularJs控制器: 局部视图(_Layout.cshtml): @ViewBag.Title-我的ASP.NET应用程序 @RenderBody() @RenderSection(“脚本”,false) 我在我的另一个视图页面中包含了这个部分视图,在视图渲染之后进行angular js调用。
@ViewBag.Title-我的ASP.NET应用程序
@RenderBody()
@RenderSection(“脚本”,false)
我在我的另一个视图页面中包含了这个部分视图,在视图渲染之后进行angular js调用。我想调用AngularJS控制器get方法
$http.get('http://localhost:9585/admin/menulist)
在查看渲染之前。在加载时调用$scope.init函数,如下所示
app.controller('menuController', ['$scope', '$http', function ($scope, $http) {
$scope.init = function () {
angular.element(document).ready(function () {
$scope.SiteMenu = [];
$http.get('http://localhost:9585/admin/menulist').then(function (data) {
debugger;
if (data.data != "" && data.data != "1") {
$scope.SiteMenu = data.data;
}
else
window.location="/UserLogins/SignIn"
},
function (error) {
alert('Error');
})
});
}
$scope.init(); //call function while loading controller
}]);
当部分渲染时它已经运行了,因为应该运行
Angularjs
源来定义控制器
和…,但是您可以设置一个条件
,当菜单
完成时,它会显示@RenderBody()
您可以给我一些示例。。我仍然无法理解如何定义条件来强制角js在查看加载之前运行我想他/她知道这一点!查看HTML
=>
<!DOCTYPE html>
<html ng-app="myApp1">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>@ViewBag.Title - My ASP.NET Application</title>
<link href="~/Content/Site.css" rel="stylesheet" type="text/css" />
<link href="~/Content/bootstrap.min.css" rel="stylesheet" type="text/css" />
<script src="~/Scripts/jquery-1.12.4.min.js"></script>
<script src="~/Scripts/jquery-ui-1.12.1.min.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
<script src="~/Scripts/angular.min.js"></script>
<script src="~/Scripts/JS/Module.js"></script>
<script src="~/Scripts/JS/Service.js"></script>
<script src="~/Scripts/JS/Controller.js"></script>
</head>
<body class="" style="">
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div id="navbarid" class="collapse navbar-collapse">
<div ng-controller="menuController" ng-init="init()" ng-view>
<ul class="main-navigation">
<li class="dropdown" ng-repeat="menu in SiteMenu | filter : {ParentMenuId: 0}:true" ng-include="'treeMenu'"></li>
<li style="float:right;"><a href="../Userlogins/SignIn">Log Out</a></li>
</ul>
<script type="text/ng-template" id="treeMenu">
<a href="{{menu.Url}}">{{menu.Name}}</a>
<ul ng-if="(SiteMenu | filter : {ParentMenuId : menu.MenuItemId}:true).length > 0" style="line-height:1px;">
<li id="submenuitem" ng-repeat="menu in SiteMenu | filter : {ParentMenuId : menu.MenuItemId}:true" ng-include="'treeMenu'" style="border-bottom:1px solid white;"></li>
</ul>
</script>
</div>
</div>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav"></ul>
</div>
</div>
<div class="container body-content">
@RenderBody()
</div>
@RenderSection("Scripts", false)
app.controller('menuController', ['$scope', '$http', function ($scope, $http) {
$scope.init = function () {
angular.element(document).ready(function () {
$scope.SiteMenu = [];
$http.get('http://localhost:9585/admin/menulist').then(function (data) {
debugger;
if (data.data != "" && data.data != "1") {
$scope.SiteMenu = data.data;
}
else
window.location="/UserLogins/SignIn"
},
function (error) {
alert('Error');
})
});
}
$scope.init(); //call function while loading controller
}]);