【问题标题】:How to pass a method to a directive and invoke it to pass data to a nested directive?如何将方法传递给指令并调用它以将数据传递给嵌套指令?
【发布时间】:2016-04-04 15:04:26
【问题描述】:

我写了一个指令list,它显示了一个项目列表。

然后我想在另一个指令wrapped-list 中重用这个组件,它会修改列表(添加一些项目,更改一些值),并在它周围添加一些装饰性的东西。

list 需要一个项目列表作为参数,然后,wrapped-list 需要相同的列表,以及更改列表值和内容的方法。

当我尝试从wrapped-list 调用方法以将数据传递给list 时,会出现此问题。

见小提琴here

我尝试了很多疯狂的组合,但都无法成功。

  • items="listFactory({items:items})"
  • items="listFactory(items)"
  • items="{{listFactory(items)}}"
  • ...

到目前为止没有运气。 有什么想法吗?

注意:我可以让它与 items="$parent.listBuilder(items)" 一起工作,但我不想依赖父级的范围。 另外,我知道这会生成$digest() iteration reached error,这不是这个问题的一部分!

【问题讨论】:

  • 您需要检查您的 camelCase,您的范围中有 listFactory,html 中有 listFactory。您的 html 应该是列表工厂。我刚刚在你的小提琴中运行它并且它有效。
  • jsfiddle.net/a5zsm4v5 这是小提琴
  • 哇!谢谢!很多!!! :)
  • 没问题,只要记住如果你在camelCase中定义了一个变量,那么camelCase的html版本需要读取camel-case。

标签: angularjs methods angularjs-directive parameter-passing directive


【解决方案1】:

正如Ohjay44 评论的那样,错误是listFactory 在HTML 端应该被引用为list-factory

【讨论】:

    猜你喜欢
    • 2018-10-04
    • 2015-10-05
    • 2015-08-31
    • 2021-03-31
    • 2018-11-06
    • 2015-03-30
    • 1970-01-01
    • 2016-08-27
    • 2017-03-03
    相关资源
    最近更新 更多