Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在对象数组上循环并重写属性值_Javascript_Angularjs_Ionic Framework - Fatal编程技术网

Javascript 如何在对象数组上循环并重写属性值

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

我有一个包含对象的Features数组。featureUrl是从从数据库收集的服务返回的。在我使用ngRoute的桌面angular应用程序中,所有这些都非常有效。但是,我正在构建一个使用UIRouter的Ionic移动应用程序,这似乎引发了一个问题。我无法构建如下url,因为它们都从状态提供程序输出'index.html#/app/my account'

离子代码

.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,index
replace
不会修改原始字符串…它会返回一个新字符串刚刚注意到我需要添加注释以通知用户更改…上述方法是否解决了您的问题?
for(var index=0, index<$scope.Features.length(); index++){
   $scope.Features[index]['featureUrl'] = $scope.Features[index]['featureUrl'].replace("(.*#)(.*)", "$1/app$2"); 
}