我有一个奇怪的问题,我无法解释。
我有以下代码:
if (groupsCtrl.groups[groupsCtrl.groupslug].members) {
angular.extend(groupsCtrl.groups[groupsCtrl.groupslug].members, {[friend.key]: true});
} else {
groupsCtrl.groups[groupsCtrl.groupslug].members = {[friend.key]: true};
}
该代码在firefox&铬。但是,当我在手机上的移动Android浏览器中运行它时,我的整个网站崩溃,只显示一条白线。我发现这是因为这一行:
angular.extend(groupsCtrl.groups[groupsCtrl.groupslug].members, {[friend.key]: true});
具体而言,[friend.key]
是问题的根源。我想这是兼容性问题,有解决方法吗?这也不起作用:
var friendkey = friend.key;
angular.extend(groupsCtrl.groups[groupsCtrl.groupslug].members, {[friendkey]: true});
非常感谢!我仍然是一个新手,很抱歉,如果这对你来说很明显,也试着搜索,但不知道该搜索什么。
答案 0 :(得分:0)
它在所有编程语言中的拇指规则,在创建对象时无法动态定义对象属性名称。在JSON,对象等的JavaScript中应用相同的规则
解决此问题的最佳方法是,在将其传递给extend函数之前,创建一个您想要扩展的对象。动态创建对象属性的核心问题是,您只需使用'orderby' => 'meta_value'
进行访问即可设置对象密钥。
<强>代码强>
bracket notation