ngModel'深层对象创建机制

时间:2013-10-11 12:11:30

标签: javascript angularjs object angularjs-scope angularjs-service

我想使用angular'机制进行深度属性嵌套,这是ng-model指令正在使用的东西。我的意思是我们可以通过在视图中编写ng-model="data.obj1.prop2.attr3.value4.text"来在范围中创建非常“深”的对象,所以我想在控制器/服务中轻松地完成它。我不想重新发明轮子(或使用thisthis)。有没有像angular.create(path_str)那样的无证件?

1 个答案:

答案 0 :(得分:4)

您可以通过$parse服务实现一种方法。它具有gettersetter功能,我认为可以处理您想要的功能

    var getter = $parse('prop1.prop2.prop3.prop4');
    var setter = getter.assign;
    setter($scope,"value1111");

请参阅此小提琴http://jsfiddle.net/cmyworld/m7gxn/

我认为这也有效

$scope.$eval("prop2.prop2.prop3.prop4=55");