在module.config(...)和指令之间共享数据 - AngularJS

时间:2015-08-13 08:50:35

标签: javascript angularjs kendo-ui angular-formly

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

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

当在指令中触发下拉列表的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());
}

如果有人能想出实现这个或替代方法的方法,我会永远感激。

我已经尝试过的事情:

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

0 个答案:

没有答案