使用角度js将对象附加到属性对象和对象数组

时间:2016-04-07 13:24:33

标签: javascript angularjs

我有一个包含2个属性和4个对象数组的对象($ scope.details) 我试图将一个新对象作为属性附加到$ scope.details。

enter image description here

这是我尝试的方式:

         var routeId;
         var obj=new Object();
         obj.routeId = $routeParams.id;
         $scope.details = obj;

然而没有得到结果。 有什么建议吗?

4 个答案:

答案 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"}