Angular JS:指令中的范围和ng-repeat

时间:2012-12-01 12:27:32

标签: javascript angularjs

我正在尝试编写自定义指令。这是Andy Joslin的示例中的一个分支。

请参阅代码http://plnkr.co/edit/jXfr6P?p=preview

我可以将selection方法传递给第一个子范围,但不能进一步传递。我知道ng-repeat创建子范围,原始示例正确更新模型。但是,不知道如何调用该函数。

Click on Apparel -> sel = Apparel ==> works
Click on Mens Shirts  -> sel = Apparel ==> Not OK (needs to be Mens Shirts )
Click on Mens Special Shirts -> sel = Apparel ==> works Not OK (needs to be Mens Special Shirts)
...
Click on Boats -> sel = Boats ==> works

1 个答案:

答案 0 :(得分:3)

我已经成功修复了你的例子。找到解决方案的关键是将指令范围更改为:

 scope: {
      tree: '=ngModel',
      selection:'=selection' // changed & to =
    }

因为您必须为每个树传递选择函数并以这种方式选择:

selection="selection" // was selection="selection(val)"

请参阅我的分叉的plunker:http://plnkr.co/edit/2tal6V?p=preview