【问题标题】:ngModel' deep objects creation mechanismngModel 的深度对象创建机制
【发布时间】:2013-10-19 12:23:53
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    您可以实现的一种方法是使用$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");
    

    【讨论】:

    • ngModel 也是这样做的。
    • 太好了,我马上测试一下