Jor*_*org 2 javascript angularjs
我需要加载Web服务.我喜欢显示,排序和过滤表的角度方式,我建立的工作很棒.现在我试图扩展这个:基于所选的链接,我想以相同的方式显示不同的数据,但是来自同一个Web服务.我试图不重复代码,所以我试图重用控制器,现在我很困惑.这意味着我想要
什么是解决我迄今为止认为配置更多变化的最佳方法?我开始路由到变量(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
})
Run Code Online (Sandbox Code Playgroud)
(部分)控制器:
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;
}
});
}
Run Code Online (Sandbox Code Playgroud)
如果我没有意义,我会尽力澄清.
如果要使用重用控制器名称,则应该对路径使用resolve属性,并在控制器中使用该resolve属性
$routeProvider.when('/change-requests/business-solutions', {
//this template will be different
templateUrl: 'js/modules/changeRequests/partials/business-solutions.html',
controller: ChangeRequestCtrl, resolve: {
resolvedprop: ['$route', '$q', function ($route, $q) {
var apiObject = {url: 'abc.com' };
return apiObject
}],
}
})
function ChangeRequestCtrl($scope, $location,resolvedprop) {
url = resolvedprop.url ;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1599 次 |
| 最近记录: |