我试图设置一个简单的Angular.js应用程序,但它似乎导致了一个无限循环,我不知道为什么。我的猜测是一个简单的愚蠢错误。任何帮助将不胜感激。
我尝试做的是在页面加载时执行show()。基本上是一个显示所有信息的搜索。用户可以输入文本,这将在显示时再次过滤结果。我的问题似乎在路由中。
/* This is the controller */
var sigM = angular.module('sigM', ['ngRoute', 'ngGrid', 'ui.date']);
sigM.config([ '$routeProvider', function($routeProvider) {
$routeProvider.when('/setup', {
template : ' ',
controller : 'sigSetupCtrl'
}).when('/result/:params/', {
template : 'sigID',
controller : 'sigSearchResultCtrl'
}).otherwise({
redirectTo : '/setup'
});
} ]);
sigM.controller('sigSearchCntl', function($scope,$log,$http,$q, $window) {
$scope.setup = { hid: ''};
$scope.show = function() {
window.location = '#/result/' + angular.toJson($scope.setup);
};
});
sigM.controller('sigSetupCtrl', function($scope,$log,$http,$q) {
$scope.setup = { hid: ''};
$scope.show();
});
sigM.controller('sigSearchResultCtrl', function($scope,$log,$http,$q,$routeParams, $window) {
$log.info("----------: " + angular.toJson($routeParams));
//my code
});
<body ng-controller="sigSearchCntl">
<form ng-submit="show()">
<table>
<tr><td>Search</td> <td> <input ng-model="setup.hid"></td><td><input type="submit" value="Show"></td></tr>
</table>
</form>
<script type="text/ng-template" id="sigID" >
<div ng-show="loading" style='clear:both; text-align: center;'>Loading report...<img src="Wait3.gif"></div>
<div ng-show="!loading" style='margin-bottom: 10px; margin-left: 10px; '><h3> Sig: {{hid}} </h3></div>
<div ng-show="!loading" class="gridStyle" ng-grid="gridOptions"></div>
</script>
</body>