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);
};
}
};
});