Angularjs 获取指令中ngModel的初始值

Angularjs 获取指令中ngModel的初始值,angularjs,Angularjs,我有一个指令需要ngModel。该指令修改存储在ngModel中的值(它实现文本的就地编辑)。在我的link函数中,我需要在更改ngModel之前获取其值 我试着查看了ngModel.$viewValue,以及ngModel.$modelValue。它们最终都会得到模型的内容,但在指令生命周期的开始,它们会得到原始的未处理的角度表达式,如{{user.name}。我找不到一个方法来确定 当表达式已被处理时 有什么想法吗 directive('test', function() { ret

我有一个指令需要
ngModel
。该指令修改存储在
ngModel
中的值(它实现文本的就地编辑)。在我的
link
函数中,我需要在更改
ngModel
之前获取其值

我试着查看了
ngModel.$viewValue
,以及
ngModel.$modelValue
。它们最终都会得到模型的内容,但在指令生命周期的开始,它们会得到原始的未处理的角度表达式,如
{{user.name}
。我找不到一个方法来确定 当表达式已被处理时

有什么想法吗

directive('test', function() {
    return {
        restrict: 'A',
        require: 'ngModel',
        link: function(scope, element, attrs, ngModel) {

        }
    };
})

使用
$parse
服务:

app.directive('test', function($parse) {
  return {
    link: function (scope, element, attrs) {

      var modelGetter = $parse(attrs.ngModel);
      var initialValue = modelGetter(scope);

    }
  };
});
或:

演示:

app.directive('test', function($parse) {
  return {
    compile: function compile(tElement, tAttrs) {

      var modelGetter = $parse(tAttrs.ngModel);

      return function postLink(scope, element) {

        var initialValue = modelGetter(scope);

      };
    }
  };
});