我有一个包含2个属性和4个对象数组的对象($ scope.details) 我试图将一个新对象作为属性附加到$ scope.details。
这是我尝试的方式:
var routeId;
var obj=new Object();
obj.routeId = $routeParams.id;
$scope.details = obj;
然而没有得到结果。 有什么建议吗?
答案 0 :(得分:0)
试试这个......
var routeId = "some value";
var obj=new Object();
obj["routeId"]= $routeParams.id;
$scope.details = obj;
或者你可以这样做..
var obj = {};
ob.propertyName = $routeParams.id;
$scope.details = obj;
在我们提供更多应用解决方案之前,我们希望看到一些代码。
答案 1 :(得分:0)
如果没有更多的代码,很难说这里发生了什么。
但是,您可能正在更新角度“摘要周期”之外的$scope
对象,因此角度不知道更改。
http://www.sitepoint.com/understanding-angulars-apply-digest/
要强制角度运行摘要周期,您可以调用$scope.$apply()
var obj = {
routeId: $routeParams.id
};
$scope.details = obj;
$scope.$apply();
答案 2 :(得分:0)
根据我的理解,您想将$routeParams.id
追加到$scope.details
因此,$scope.details = yourNewObject
不会工作,因为它只会替换它而不会附加它。
为什么var obj=new Object()
只能var obj={}
?
<强>解决方案:强>
$scope.details['routeId']=$routeParams.id
OR
$scope.details.routeId=$routeParams.id
答案 3 :(得分:0)
你正在考虑这种方式,与Angular无关。
如果您希望$ scope.details包含一个名为route的东西,只需添加它。
$scope.details.route = {"routeId": $routeParams.id, "YourOtherAwesomeRouteStuff": "OtherCoolValues"}