我需要在模块的配置函数和指令之间共享一个变量。我们将 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());
}
如果有人能想到实现这一目标的方法或替代方法,我将永远感激不尽。
我已经尝试过的事情:
- 创建一个服务来传递数据。这不起作用,因为您无法访问模块配置功能中的服务
- 将其存储为根范围的全局。这对我也不起作用,因为我无法从模块配置功能访问根范围