从 angular 中的对象创建 url 对象

Create url object from object in angular

我正在尝试使用我创建的对象设置 url(在 angular 中)。这是一个对象数组,我会让它在 url 字符串上设置以执行某种 "save state".

我有我的对象 -

  [{"key1" : true}, {"key2" :  false}];

我基本上想将它设置为一个 url 对象,这样我就可以为我的状态获得自定义的 url 字符串 - 然后在着陆时解释它以更改状态(因此用户可以发送自定义 urls).

所以在它只有一个对象之前,我可以传递对象并做类似

的事情
$scope.myObject = true;
$location.search($scope.myObject);

但我正在尝试将一些对象组合成一个大对象,这样我就可以在一个地方(在工厂中)跟踪几个不同的状态。我遇到的问题是,如果 location.search 参数是一个对象数组,我似乎无法让它工作。我得到一个 "undefined is not a function",它指向 angular 内部。

这有什么技巧吗?需要一些帮助,这是我第一次尝试这个。另外,我试图在不刷新的情况下更改 url。谢谢!

而不是:

[{"key1" : true}, {"key2" :  false}];

尝试:

{"key1" : true, "key2" :  false};

这是 "one big object" 的正确 JSON 语法。

要从一个对象数组变成一个大对象,您必须遍历数组并构建一个具有从数组中发现的属性的新对象:

var newObj = {};
var oldArray = [{"key1" : true}, {"key2" :  false}];
for (var i = 0; i < oldArray.length; i++) {
    var obj = oldArray[i];
    for (param in obj) {
        newObj[param] = obj[param];
    }
}
// newObj is now one big object.