我有一个包含对象的Features数组。 featureUrl从它从数据库收集的服务返回。在我使用ngRoute的桌面角应用程序中,一切都很棒。但是,我正在构建一个使用UIRouter的Ionic移动应用程序,这似乎引起了一个问题。我无法构建如下所示的URL,因为它们都从州提供商输出'index.html#/ app / my-account'。
Ionic Code Abbrv
.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('app', {
url: '/app',
abstract: true,
templateUrl: 'templates/menu.html',
controller: 'AppCtrl'
})
.state('app.my-account', {
url: '/my-account',
views: {
'menuContent': {
templateUrl: 'templates/my-account.html',
controller: 'accountController'
}
}
})
所以,我的问题是,在我的Ionic应用程序中,是否可以直接从尾部斜杠构建URL? (即index.html#/ my-account)所以它们匹配我的Svc对象,或者它们是否总是附加在'app'后面,如index.html#/ app / my-account?
如果没有,有人可以帮我循环我的对象并拆分Url字符串并将/ app /插入到url中,这样我的数据就能用于UIRouter吗?
Features
[{
featureClass: 'hasStuff',
featureUrl: 'index.html#/my-account',
featureBlah: 'blah'
},
{
featureClass: 'hasCoolStuff',
featureUrl: 'index.html#/my-profile',
featureBlah: 'blah'
},
{
featureClass: 'hasMoreCoolStuff',
featureUrl: 'index.html#/motorcycles',
featureBlah: 'blah'
}]
这就是我在重写featureUrl字符串时的想法,但却陷入困境。
var featureUrlRewrite = function () {
var index;
var alteredUrl;
for (index = 0, index < $scope.Features.length, index++) {
alteredUrl = $scope.featureUrl[index];
featureUrl = alteredUrl.split("/").append("app/")
}
};
答案 0 :(得分:0)
如果您使用正则表达式添加&#34; / app&#34;它可能会有效在#符号后面:
for(var index=0, index<$scope.Features.length(); index++){
$scope.Features[index]['featureUrl'] = $scope.Features[index]['featureUrl'].replace("(.*#)(.*)", "$1/app$2");
}
这应该捕获#符号之前的所有内容以及之后的所有内容,作为单独的捕获和插入/应用程序在字符串的两个部分之间。
我对ngRoute或您正在使用的平台不熟悉,但希望有所帮助!