gpt4 book ai didi

angularjs - 如何使用单向绑定(bind)正确格式化指令中的数据?

转载 作者:行者123 更新时间:2023-12-03 00:08:28 25 4
gpt4 key购买 nike

我尝试在自定义指令中使用单向绑定(bind)进行一些数据操作,但我第一次收到“未定义”消息。我应该如何使用指令而不使用 $watch ?

示例:

<one val={{arr[1].value}}> </one>
<two val="arr[0].value"> </two>

指令:

 .directive('one', function(){
return {
restrict: 'E',
scope: {
val:'@'
},
template: '<div> 1111 {{val}} </div>' ,
link: function (scope) {
console.log('scope', scope.val) // SHOWS UNDEFINED BUT INSERT DATA IN TEMPLATE
if(scope.val) scope.val = scope.val.replace(/\d/g,'')


}
}
})
.directive('two', function(){
return {
restrict: 'E',
scope: {
val:'='
},
template: '<div> 2222 {{val}} </div>' ,
link: function (scope) {
console.log('scope', scope.val)
scope.val = scope.val.replace(/\d/g,'')

}
}
});

示例:JsFiddle

最佳答案

您只需使用 attr.$observe 即可通过一种绑定(bind)方式访问值,将链接函数的代码更改为 -

link: function (scope,elum,attr) {
attr.$observe('val', function(value) { console.log('scope', scope.val) })
//console.log('scope', scope.val)
if(scope.val) scope.val = scope.val.replace(/\d/g,'')


}

查找更新 JsFiddle

关于angularjs - 如何使用单向绑定(bind)正确格式化指令中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41181488/

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