Angularjs指令代表不通过中间处理程序触发

时间:2013-03-11 17:00:52

标签: angularjs-directive

我花了4个小时尝试用委托来实现指令,没有运气。

用例:

我有一个名为“过滤器”的指令。

当用户激活/停用过滤器时,父作用域可能需要更新屏幕上的数据。

在让父母运行之前,我想对内部数据结构进行一些内部更改,并将新的过滤器状态传递给父级。

我创建了一个jsfiddel来显示我想要做的简化版本。

http://jsfiddle.net/concept/zADNy/ 这是我在指令

中的范围
scope : {
    onFilterChanged : '&'
},

这是中间处理程序

function notifyParent() {
    scope.onFilterChanged({filters:scope.filters});
}

1 个答案:

答案 0 :(得分:1)

指令代表必须是小写(有人请纠正我,如果该判断错误,如果是,那么为什么骆驼案例版本不起作用)

好的,所以经过几个小时的播放和阅读以及查看其他人的代码后,我发现由于某种原因,委托功能需要小写。

以下是最终修复

http://jsfiddle.net/concept/zADNy/4/

这是我在指令

中的范围
scope : {
    onfilterchanged : '&'
},

这是中间处理程序

function notifyParent() {
    scope.onfilterchanged({filters:scope.filters});
}