Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 角-聚合物相互作用_Angularjs_Dart_Dart Polymer_Polymer_Angular Dart - Fatal编程技术网

Angularjs 角-聚合物相互作用

Angularjs 角-聚合物相互作用,angularjs,dart,dart-polymer,polymer,angular-dart,Angularjs,Dart,Dart Polymer,Polymer,Angular Dart,我计划在AngularJS尝试一个项目,其中所有组件都将使用聚合物开发。现在在开始这个项目之前,我有两个问题: 在使用Angular services获取数据后,我是否可以更新聚合物组件数据模型(也可以通过UI进行更新)?如果是,那么如果可能的话,分享一个例子 我可以调用Angular services从聚合物组件内部获取数据吗?(比如说,我有一个用户控件作为聚合物组件,用于通过Angular Services针对MongoDB验证用户凭证) 如果可能,请分享一个例子 这个设置会有一些复杂的问题

我计划在AngularJS尝试一个项目,其中所有组件都将使用聚合物开发。现在在开始这个项目之前,我有两个问题:

  • 在使用Angular services获取数据后,我是否可以更新聚合物组件数据模型(也可以通过UI进行更新)?如果是,那么如果可能的话,分享一个例子

  • 我可以调用Angular services从聚合物组件内部获取数据吗?(比如说,我有一个用户控件作为聚合物组件,用于通过Angular Services针对MongoDB验证用户凭证)

    如果可能,请分享一个例子


  • 这个设置会有一些复杂的问题

    第一个是Angular不知道如何绑定到自定义元素,因此Angular内部绑定到聚合物组件,如:

    
    
    将设置元素的foo属性,该属性只能是字符串,但不会使用Node.bind设置到foo属性的绑定。这对于绑定复杂对象或需要双向绑定时是一个大问题

    我创建了一个指令,允许您从Angular中使用Node.bind,但它是用于Dart的。您可以将其移植到JS:

    它的工作原理是捕获双方括号中的表达式,并通过Node.bind设置监视表达式和绑定。前面的示例将更改为:

    
    
    绑定是双向的。如果
    更改了foo的值,则bar的值将被更新

    第二个问题是依赖注入。由于浏览器负责创建自定义元素,Angular不知道它们是何时创建的,也没有机会注入依赖项。所以你需要一种方法让聚合元素获得一个有角度的服务(或者任何服务对象,不管是否有角度)

    一旦使用了angular node bind之类的东西,就可以使用绑定将服务传递给元素。也许是这样:

    
    
    (因为我不是一个真正的角度专家,我只是尝试让Angular和Polymer一起使用,我不是100%确定$http只在表达式中可用)


    Angular团队表示,他们打算在Angular 2.0中支持自定义元素,尽管他们的团队没有提到这一点。

    聚合物元素只是常规元素。如果对它们设置属性,调用方法,并侦听它们的事件,那么将它们与其他框架或库一起使用应该不会有任何复杂的问题。这完全是出于设计


    交叉结合角元素和聚合物元素可能很诱人,但这是先进的,并不是严格必要的。我绝对不建议这样开始。

    嗯。。。感谢Justin从架构的角度讲是有意义的——尽管需要弄清楚实现级别的细节:)我认为需要在聚合物层(读取阴影DOM)和浏览器之间架起一座桥梁,其他框架可以监听到这座桥梁。简单地说,Polymer对象需要将事件(至少是本机事件)冒泡到浏览器级别,这将由JS框架订阅。