我需要加载 Web 服务。我喜欢显示、排序和过滤表格的角度方式,而且我构建的效果很好。现在我正在尝试扩展它:根据选择的链接,我想以相同的方式显示不同的数据,但来自同一个 Web 服务。我试图不重复代码,所以我试图重用控制器,现在我很困惑。这意味着我想
- 显示不同的部分/模板 url。
- 加载不同的 url 参数。
- 在 JSON 返回后映射一些东西。
解决我迄今为止认为是更多配置更改的最佳方法是什么?我首先路由到一个变量 ( when('/change-requests/:businessUnit'
),然后使用它来加载不同的值。但是,我该如何更改模板网址?另一方面,如果我只是添加一个路由并加载不同的 URL 模板(重用控制器),我如何在 ajax 调用中加载不同的 url?我对 Angular 不是很熟悉,所以也许我找错了树……
这是我原始代码的相关部分。还有更多,但没有任何改变。我已经放置了一些内联注释,您可以在其中找到我想要更改的位,具体取决于所选的链接。
HTML:
<div ng-view></div>
路由器:
$routeProvider.when('/change-requests/business-solutions', {
//this template will be different
templateUrl: 'js/modules/changeRequests/partials/business-solutions.html',
controller: ChangeRequestCtrl
})
(部分)控制器:
function ChangeRequestCtrl($scope, $location) {
$scope.loaded = false;
$.ajax({
//this url will be different
url: url,
success: function(json) {
$scope.$apply(function() {
$scope.changes = json.map(function(row) {
//this array map will be different
return row;
});
$scope.loaded = true;
});
},
error: function() {
$scope.error = true;
}
});
}
如果我没有意义,我会尝试澄清。