【问题标题】:AngularJS Passing Scope via Data BindingAngularJS 通过数据绑定传递作用域
【发布时间】:2017-03-24 16:00:12
【问题描述】:

编辑 我正在寻找类似this 的东西。结合对这篇文章的建议,我现在正在使用结合表达式的绑定。

<my-component data="{{data}}">{{data}}</my-component>

是否可以通过数据绑定传递控制器范围?我的处理控制器应该得到这样的范围:

bindings: {
    scope: '<'
}

我想从第一个控制器传递一个带有数据的指令,这个信息应该显示在我的新组件中。 第一个控制器有数据,我想像这样在模板中传递它:

<my-component>{{scope.data}}</my-component>

【问题讨论】:

  • 我不确定你到底想做什么,但如果我理解正确,你想在两个控制器之间发送数据,对吧?
  • 如果您使用共享通用数据,它应该驻留在一个 service 中,它是一个指向应用程序上下文中相同数据状态的单例。使用适当架构的代码,控制器不再从事相互“提供”数据的业务。一旦服务到位,您只需将其注入到需要访问 same 数据的任何客户端控制器中。

标签: angularjs scope components


【解决方案1】:

为什么要传递控制器的整个作用域?

通常你会通过一个对象从第一个控制器传递给组件,如下所示:

bindings: {
        someVariable: '=' 
}

然后在控制器的 html 中调用组件:

<my-component some-variable="scope.someVariable"></my-component>

scope.someVariable 将是属于第一个控制器的对象,现在您可以访问组件内的这些数据

【讨论】:

    猜你喜欢
    • 2017-11-26
    • 1970-01-01
    • 1970-01-01
    • 2015-10-11
    • 2014-09-18
    • 2018-10-12
    • 2021-07-14
    • 1970-01-01
    • 2018-03-03
    相关资源
    最近更新 更多