gpt4 book ai didi

angularjs - 从 Formly 表达式访问 Controller 的范围

转载 作者:行者123 更新时间:2023-12-01 06:08:40 24 4
gpt4 key购买 nike

Formly's expressions 中访问 Controller 范围(即 $scope)的正确方法是什么? ?

我的用例:

我有一个属性(property),例如$scope.showEmailField = false并且我希望在将此属性设置为 false 时隐藏我的 Formly 字段.我试过使用 hideExpression: 'showEmailField' ,但看起来 Formly 创建了它自己的子作用域。我发现的唯一方法是使用 $parent.showEmailField表达,但这不是一个好习惯,而且这种方式没有正确跟踪表达。我不得不搬家showEmailField到模型对象并使用以下表达式:model.showEmailField .这工作正常,但它有点丑陋的解决方法。

我已经多次重新阅读有关表达式、字段配置和其他内容的文档,但我无法理解所有这些上下文和范围如何与 Formly 一起工作的概念。也许我们需要一篇关于这个主题的很好的解释性文章。

最佳答案

我相信您的问题的最佳解决方案是为 hideExpression 使用匿名函数,如下所示:

    app.controller('MainCtrl', function MainCtrl($scope) {
var vm = this;
$scope.showEmailField = false;
vm.fields = [
{
key: 'email',
type: 'input',
templateOptions: {
type: 'email',
label: 'email',
},
hideExpression: function(){
return $scope.showEmailField ;
}
}
];
});

欲了解更多详情,您可以阅读 this link在有 Angular 的正式文档中。大多数正式的字段配置都接受一个函数参数来处理一些杂项表达式。

关于angularjs - 从 Formly 表达式访问 Controller 的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34752253/

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