我有以下 AngularJS 应用程序,它由模板 ( index.html
)、应用程序定义 ( app.js
)、控制器定义 ( controllers.js
) 和托管页面 ( host.jsp
) 组成。
代码如下:
搜索.jsp
<div class="container-fluid" ng-app="facetedSearch">
<div class="row-fluid" ng-view>
</div>
</div>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular.min.js"></script>
<script src="/resources/js/page/search/app.js"></script>
<script src="/resources/js/page/search/controllers.js"></script>
应用程序.js
angular.module('MyApp', []).
config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/', {templateUrl:'/index.html', controller: MyController}).
otherwise({redirectTo: '/'});
}]);
控制器.js
var MyController=['$scope','$http','$location',function ($scope, $http, $location) {
//do some fancy stuff
if($scope.myAttribute===undefined){
$scope.myAttribute=someDataFromHttpRequest;
}
$location.search(someParameters);
}];
index.html 和 host.jsp 没有显示为简洁和无关紧要。
控制器从 Ajax 请求中获取一些数据,将其中的一些存储在其中$scope
以避免再次请求,并将其显示给用户并等待输入。当用户在视图中选择一些数据时,我会更新 URL 查询部分以反映选择更改。但我想通过检查数据是否在$scope
.
我面临的问题$scope.myAttribute
是始终未定义。它会在每次请求时重置。我想我在滥用 AngularJS。有什么线索吗?