为 angular 创建了一个过滤器,以使该方法 (_uriseg) 可用:
app.filter('_uriseg', function($location) {
return function(segment) {
// Get URI and remove the domain base url global var
var query = $location.absUrl().replace(BASE_URL,"");
// To obj
var data = query.split("/");
// Return segment *segments are 1,2,3 keys are 0,1,2
if(data[segment-1]) {
return data[segment-1];
}
return false;
}
});
现在我可以打电话了:
$scope.email = $filter('_uriseg')(3);
因此,使用此过滤器可以获取任何 URL 段的值。
我仍然相信 angular.js 有类似的东西,如果有人愿意分享默认方法,谢谢。
我还创建了另一个过滤器来帮助那里的 codeigniter 研究员,从 URI 获取控制器操作,codeigniter 样式:
app.filter('getCImr', function($location) {
return function(controller) {
// Get URI and remove the domain base url global var
var query = $location.absUrl().replace(BASE_URL,"");
// To obj
var data = query.split("/");
// Remove CI controller
delete data[0];
var result = {};
// Map action and record ID/Whatever
result[data[1]] = data[2];
return result;
}
});
因此,假设您的 codeigniter URI 类似于:
domain.com/controller/function/id
你可以做一个:
$scope.id = $filter('getCImr')('controller')['function'];
要得到:
console.log($scope.id); // id
不管怎么说,还是要谢谢你。