gpt4 book ai didi

angularjs - 获取指令中 ngModel 的初始值

转载 作者:行者123 更新时间:2023-12-03 00:06:10 26 4
gpt4 key购买 nike

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

我尝试查看 ngModel.$viewValuengModel.$modelValue。他们最终都获得了模型的内容,但在指令生命周期的开始,他们获得了原始的未处理的 Angular 表达式,例如 {{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);

};
}
};
});

演示: http://plnkr.co/edit/EfXbjBsbJbxmqrm0gSo0?p=preview

关于angularjs - 获取指令中 ngModel 的初始值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23557213/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com