Javascript 如何在对象数组上循环并重写属性值
我有一个包含对象的Features数组。featureUrl是从从数据库收集的服务返回的。在我使用ngRoute的桌面angular应用程序中,所有这些都非常有效。但是,我正在构建一个使用UIRouter的Ionic移动应用程序,这似乎引发了一个问题。我无法构建如下url,因为它们都从状态提供程序输出'index.html#/app/my account' 离子代码Javascript 如何在对象数组上循环并重写属性值,javascript,angularjs,ionic-framework,Javascript,Angularjs,Ionic Framework,我有一个包含对象的Features数组。featureUrl是从从数据库收集的服务返回的。在我使用ngRoute的桌面angular应用程序中,所有这些都非常有效。但是,我正在构建一个使用UIRouter的Ionic移动应用程序,这似乎引发了一个问题。我无法构建如下url,因为它们都从状态提供程序输出'index.html#/app/my account' 离子代码 .config(function($stateProvider, $urlRouterProvider) { $statePr
.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/")
}
};
var featureUrlRewrite=函数(){
var指数;
可变变量;
对于(索引=0,索引<$scope.Features.length,索引++){
alteredUrl=$scope.featureUrl[index];
featureUrl=alteredUrl.split(“/”).append(“app/”)
}
};
如果使用正则表达式在#符号后面添加“/app”,则可能会起作用:
for(var index=0,indexreplace
不会修改原始字符串…它会返回一个新字符串刚刚注意到我需要添加注释以通知用户更改…上述方法是否解决了您的问题?
for(var index=0, index<$scope.Features.length(); index++){
$scope.Features[index]['featureUrl'] = $scope.Features[index]['featureUrl'].replace("(.*#)(.*)", "$1/app$2");
}