1

我需要在模块的配置函数和指令之间共享一个变量。我们将 angularJS 和 formly.js 与 Kendo UI 结合使用。

formly 的自定义模板在我们模块的 config 函数中定义,但实现存储在指令中。

当在指令中触发下拉菜单的 onChange 事件时,我需要能够将一个对象从那里传递回模块配置以支持另一个功能。

重点是我的客户希望每个输入旁边都有一个图标,以便轻松清除其内容。你是否同意/不同意他们的决定并不重要,我已经尝试改变他们的想法,他们想要这个,所以就这样吧。

这是一些代码:

app.config(function config(formlyConfigProvider) {

    formlyConfigProvider.setType({
        name: 'InputObjectDD',
        wrapper: ['horizontalInput', 'bootstrapHasError'],
        template: function (objAssets) {
            var tmpl = '<drop-down-directive lookup-key="{{to.lookupKey}}" lookup-field="{{to.lookupField}}" 
                lookup-required="options.templateOptions.required" field-id="{{options.key}}"
                field-value="{{to.displayField}}" ng-model="model[options.key]"></drop-down-directive>
                <i ng-click=\'deleteInputContents(dataItem)\' class="k-icon k-i-close"></i>'; },
        link: function (scope, elm, attrs) {
            scope.deleteInputContents = function (dataItem) {
            // Clear the drop downs input
        }

在定义 Kendo 下拉列表本身的指令中,我需要以上面的 deleteInputContents() 可以访问它的方式传递 dataItem 变量。

select: function (e) {
                        var cmb = this;
                        var dataItem = this.dataItem(e.item.index());
}

如果有人能想到实现这一目标的方法或替代方法,我将永远感激不尽。

我已经尝试过的事情:

  • 创建一个服务来传递数据。这不起作用,因为您无法访问模块配置功能中的服务
  • 将其存储为根范围的全局。这对我也不起作用,因为我无法从模块配置功能访问根范围
4

0 回答 0