我需要在模块的配置功能和指令之间共享一个变量。我们将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());
}
如果有人能想出实现这个或替代方法的方法,我会永远感激。
我已经尝试过的事情: