如何在angular的$ parse中赋值

xia*_*kai 7 angularjs

我有一个字符串引用我的一个范围值,如下所示:

var reference_string = "form.name";
Run Code Online (Sandbox Code Playgroud)

我想为它引用的对象赋值:

$scope.form.name = 'newvalue';
Run Code Online (Sandbox Code Playgroud)

环顾四周,我找到了两种可能的解决方案:使用普通JS或使用angular $ parse函数.

但是,似乎$ parse函数只返回值.我可以这样做,以便我可以分配一个新值吗?

即.我想做点什么

var reference_string = "form.name";
var reference = getReference($scope, reference_string); // ideally using an angular in-built function like $parse
reference = 'newvalue'; // should have the same effect as $scope.form.name = 'newvalue';
Run Code Online (Sandbox Code Playgroud)

Phi*_*hil 25

返回的对象$parse有一个assign()设置值的方法.

var getter = $parse(reference_string);
getter.assign($scope, 'newValue');
Run Code Online (Sandbox Code Playgroud)

Plunker演示~ http: //plnkr.co/edit/RlhXRpJvQ69ZdEkstyq8? p= preview