Javascript AngularJS未在视图中显示数据
我坚持使用视图中的angularjs数据显示 我在角度控制器中得到了正确的数据。但它在HTML中没有绑定 一切都是相互关联的Javascript AngularJS未在视图中显示数据,javascript,asp.net,asp.net-mvc,angularjs,Javascript,Asp.net,Asp.net Mvc,Angularjs,我坚持使用视图中的angularjs数据显示 我在角度控制器中得到了正确的数据。但它在HTML中没有绑定 一切都是相互关联的 <div class="well well-sm well-light"> <h4 class="txt-color-blue">Assembly Status <a href="javascript:void(0);" class="pull-right"><i class="fa fa-refresh"&g
<div class="well well-sm well-light">
<h4 class="txt-color-blue">Assembly Status <a href="javascript:void(0);" class="pull-right"><i class="fa fa-refresh"></i></a></h4>
<br>
<div class="custom-scroll table-responsive" style="overflow-y: scroll;">
<table id="assemblystatustbl" class="table table-bordered">
<thead>
<tr>
<th><i class="glyphicon glyphicon-bullhorn"></i>Status Name</th>
<th>#Assembly</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="val in Summary">
<td>{{ val.Description }}</td>
<td>{{ val.AssemblyCount }}</td>
</tr>
</tbody>
</table>
</div>
</div>
路由配置文件
.when('/DashBoard', {
templateUrl: '/DashBoard',
controller: 'DashBoardController'
})
加载部分视图
$('.clk-Menu').on('click', function (event, param) {
var link = '/DashBoard'
$.ajax({
url: link,
type: 'POST',
success: function (data) {
$('#content').animate({ 'margin-left': '0px' }, 400, 'easeOutQuint');
$('body,html').scrollTop(0);
$('#content').html(data);
},
error: function (data, request) {
}
});
});
您可能忘记了在模块初始化中包含依赖项,表示您想要一个新的CalcRouteModule,您可以这样做:
angular.module('CalcQouteModule', [])
此代码:angular.module'CalcRouteModule'将实际尝试解析名为'CalcRouteModule'的现有模块。如果没有,它就会失败
从角度看:
请注意,使用angular.module'myModule',[]将创建模块myModule并覆盖任何名为myModule的现有模块。使用angular.module'myModule'检索现有模块
这是您的代码:
更新:
您的DashboardsController.activate方法从未执行。你可以用几种方法来做。这两个选项的工作示例如下
捷径
在ajax回调中:
$.ajax({
url: link,
type: 'POST',
success: function (data) {
// your code...
$('#content').html(data);
angular.element('#assemblystatustbl').scope().activate();
},
error: function (data, request) { /* ... */ }
});
角度法
用于动画的和:
<a href='#' ng-click='activate()' ng-show='animate-slide'>Dashboard</a>
或者,如果您的html很小或是静态的,则在Razor视图中预先呈现如下模板:
<script type="text/ng-template" id="@Url.Action("Dashboard")">
@Html.Action("Dashboard")
</script>
请先分配上面的激活功能,然后调用下面的功能
此外,还需要对控制器分配方法进行一些更改
(function () {
'use strict';
var controllerId = 'DashBoardController';
// TODO: replace app with your module name
angular.module('CalcQouteModule',[]).controller(controllerId,
['$scope', '$modal', '$routeParams', '$http', '$route', '$timeout', 'DashBoardFactory']).controller(["$scope", "$modal", "$routeParams", "$http", "$route",
"$timeout", "DashBoardFactory", function ($scope, $modal, $routeParams, $http, $route, $timeout, DashBoardFactory) {
$scope.title = 'DashBoardController';
$scope.activate = activate;
$scope.Summary = [];
function activate() {
DashBoardFactory.getSummary()
.then(
function (data) {
console.log(data.data);
$scope.Summary = data.data.collection;
//angular.copy(data.data.collection, $scope.Summary);
}, function (e) { alert(e.stautsText); });
}
activate();
}])
});
变化如下:-
angular.module'CalcRouteModule',[]..>您错过了[]。模型上应该需要它
a如果您使用了rout配置,那么您应该在该模型中包含ngRoute。版本定义
角度。模块“CalcRouteModule”,[]控制器控制器ID。我用正确的方式写了这个代码,请看一下
我已经打电话激活;函数在该函数下面
您应该在html页面中调用js文件
请同时附上您的JS和完整的html:有人能帮忙吗你的ng应用程序在哪里?没有任何控制台错误:我仍然认为问题出在模块初始化中,否则这会很神奇:当在单页中单独运行时,我的代码工作正常,但问题是,当我在部分视图中使用此html时,你也可以发布代码吗?加载部分的代码您的脚本在ajax中吗?收到回复后,您是否会呼叫activate?当您通过ajax获取js代码时,任何js代码都不会执行,除非它是jsonp。@Aniket更新了答案,看看这是否是您所需要的当我单击第一个数据时,正确的mvc控制器调用正确的数据和视图,但当第二次单击时,视图未显示。为什么使用.clk菜单。单击??你能用ng点击吗???请参阅有多个菜单链接,其中包含class clk menu。单击菜单上的关联项即可显示。在此场景中,将显示仪表板
<script type="text/ng-template" id="@Url.Action("Dashboard")">
@Html.Action("Dashboard")
</script>
function DashBoardController($scope, DashBoardFactory) {
$scope.title = 'DashBoardController';
$scope.activate = activate;
$scope.Summary = [];
function activate() {
DashBoardFactory.getSummary()
.then(
function(data) {
console.log(data.data);
$scope.Summary = data.data.collection;
//angular.copy(data.data.collection, $scope.Summary);
}, function(e) {
alert(e.stautsText);
});
}
**activate();**
}
(function () {
'use strict';
var controllerId = 'DashBoardController';
// TODO: replace app with your module name
angular.module('CalcQouteModule',[]).controller(controllerId,
['$scope', '$modal', '$routeParams', '$http', '$route', '$timeout', 'DashBoardFactory']).controller(["$scope", "$modal", "$routeParams", "$http", "$route",
"$timeout", "DashBoardFactory", function ($scope, $modal, $routeParams, $http, $route, $timeout, DashBoardFactory) {
$scope.title = 'DashBoardController';
$scope.activate = activate;
$scope.Summary = [];
function activate() {
DashBoardFactory.getSummary()
.then(
function (data) {
console.log(data.data);
$scope.Summary = data.data.collection;
//angular.copy(data.data.collection, $scope.Summary);
}, function (e) { alert(e.stautsText); });
}
activate();
}])
});