加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何在Angular DART控制器之间进行通信

发布时间:2020-12-17 18:01:19 所属栏目:安全 来源:网络整理
导读:我有两个控制器,并希望在它们之间“发送”对象.我有这样的事情: @NgController(selector: '[users]',publishAs: 'ctrl')class UsersController { ListUsers users;}@NgController(selector: '[user_logs]',publishAs: 'ctrl')class LogsController { ListLo
我有两个控制器,并希望在它们之间“发送”对象.我有这样的事情:

@NgController(selector: '[users]',publishAs: 'ctrl')
class UsersController {
  List<Users> users;
}

@NgController(selector: '[user_logs]',publishAs: 'ctrl')
class LogsController {
  List<Log> logs;
  void filterLogsFor(User user) { logs = ... }
}

class MyAppModule extends Module {
  MyAppModule() {
    type(LogsController);
    type(UserController);
  }
}

我的解决方案只是将LogsController作为依赖项添加到UserController,并从模板中调用ctrl.logsCtrl.filterLogsFor(user)之类的东西.但它不会出于某种原因 – 我发现DI创建另一个新对象LogController与模板本身无关 – 我甚至尝试更改为“value(LogsController,new LogsController())”,但它同样 – 它创建新的MysModule调用新的LogsController,然后新的另一个模板我想.我显然做错了什么 – 但文档没有帮助,而且angularjs似乎根本不相似.

更新:
想象一下两个表(控制者) – 用户和日志,每个用户行都有链接显示分配给他的日志.

解决方法

使用最新的AngularDart库(0.10.0),GünterZ?chbauer的解决方案仍然正确,但语法有所改变:

// Receiver
//import 'dart:async';
String name;
Scope scope;
ReceiverConstructor(this.scope) {
  Stream mystream = scope.on('username-change');
  mystream.listen(myCallback);
}

void myCallback(ScopeEvent e) {
  this.name = e.data;
}


// Sender
scope.emit("username-change","emit");
scope.broadcast("username-change","broadcast");
scope.parentScope.broadcast("username-change","parent-broadcast");
scope.rootScope.broadcast("username-change","root-broadcast");

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读