javascript - 在 for in 循环中更新对象

标签 javascript angularjs

嘿,我正在尝试在我的 Angular 应用程序中更新具有子属性的对象。

对象1:

$scope.osbStep = {
                 test0Nav : {
                     current : false,
                    complete : false,
                    hidden : false
                 },test1Nav : {
                        current : false,
                        complete : false,
                        hidden : false
                 },test2Nav : {
                        current : false,
                        complete : false,
                        hidden : false
                     },
             };

$广播对象2:

var currentPage = { test0Nav : { current : true }};
$rootScope.$broadcast('step:set', currentPage);

如何用对象 2 更新对象 1?

我正在循环并匹配属性。但我需要用对象 2 的数据更新对象 1。我的日志仅返回字符串。

$scope.$on('step:set', function( event, currentStepData ){

                    for ( var key in currentStepData ) {
                        if( currentStepData.hasOwnProperty( key ) ) {
                            var currentKey = key;
                            for ( var foo in $scope.osbStep ) {
                                if( $scope.osbStep.hasOwnProperty( foo ) ) {

                                    if (currentKey === foo){

                                        console.log( 'foo ', foo );
                                        console.log( 'currentKey 'currentKey );

                                    }


                                }
                            }
                        }
                    }

                });

最佳答案

看看这个:http://davidcai.github.io/blog/posts/copy-vs-extend-vs-merge/

就你的情况而言,我认为 angular.merge 是最合适的:

angular.merge($scope.osbStep, currentPage);

PS:如果您愿意,我认为您也可以使用 jQuery 扩展方法(对于大对象应该更快一点)

关于javascript - 在 for in 循环中更新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37992928/

相关文章:

javascript - .html 处指示错误并指向 .js

javascript - 通过 jQuery 在悬停时暂停 setInterval

javascript - 在 AngularJS 中定义服务和工厂的正确方法

angularjs - 单独的用户/管理员 API?

javascript - 如何正确地进行 Bootstrap 选项卡替换?

java - 简单的 JSON 字符串查询

php - Ajax jquery 和 php 问题

angularjs - Angular.js 1.3 ng-bind 中的一次性绑定(bind)

angularjs - 在 Protractor 测试中等待服务器响应(和检查值)

javascript - 点击事件中的全日历错误时间