Angularjs ng指令模板中的模糊将不会回调父控制器函数

Angularjs ng指令模板中的模糊将不会回调父控制器函数,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我试图创建一个指令,该指令使用一个带有输入字段的模板,在输入字段失去焦点时回调父控制器,以便更新父模型中的其他值。该指令正在实现jQuery自动完成。我尝试过直接调用父回调函数,也尝试过调用本地作用域上的函数,然后调用回调函数 这是指令代码和应用该指令的元素。我错过了什么 HTML: JS: 仔细阅读一下 通常需要通过表达式将数据从隔离范围传递到父范围,这可以通过将局部变量名和值的映射传递到表达式包装器fn来完成 您将需要以下内容 <div iptm-ext-lookup ... numb

我试图创建一个指令,该指令使用一个带有输入字段的模板,在输入字段失去焦点时回调父控制器,以便更新父模型中的其他值。该指令正在实现jQuery自动完成。我尝试过直接调用父回调函数,也尝试过调用本地作用域上的函数,然后调用回调函数

这是指令代码和应用该指令的元素。我错过了什么

HTML:

JS:

仔细阅读一下

通常需要通过表达式将数据从隔离范围传递到父范围,这可以通过将局部变量名和值的映射传递到表达式包装器fn来完成

您将需要以下内容

<div iptm-ext-lookup ... numberlostfocus="vm.numberlostfocus(buttonid)"></div>
<!--                                  note the argument name ^  -->
在你的指令中

template: '<input ... ng-blur="lostFocusCallback({ buttonid: buttonid })" ...'
您不需要$scope.buttonid作为

模板已绑定到指令的作用域,并且 模板中未定义$scope变量
您的指令是一个隔离作用域,因此您必须上一层才能到达父作用域。您是否尝试过执行scope.$parent.numberLostFocusscope.buttonid?我没有看到需要回调到您的指令的数字失去焦点属性。我更新了上面的代码,以修复回调的属性与scope变量不匹配的问题。我不必走到父级调用numberlostfocus方法。据我所知,它应该绑定在隔离范围映射中。我对extensionselected回调也做了同样的事情。我修改了指令和父元素,如下所示,但它仍然不调用父作用域函数。@GordonGudmundson您对代码做了重大更改,但我认为我看到了问题所在。查看我的最新答案
<div iptm-ext-lookup ... numberlostfocus="vm.numberlostfocus(buttonid)"></div>
<!--                                  note the argument name ^  -->
template: '<input ... ng-blur="lostFocusCallback({ buttonid: buttonid })" ...'