连接2个控制器并可访问第二个控制器中的第一个控制器属性

时间:2014-10-09 10:56:38

标签: dart angular-dart dart-async

我有角镖的问题。 1个html文件触发范围和2个控制器类 的index.html

    ...                     {{subCtrl.user.name}}                 ...

第一个控制器

@Controller(
  selector: '[mainController]',
  publishAs: 'mainCtrl'
)
class MainController{
  User user = new User('testuser');
  MainController();
}

第二个控制器

@Controller(
  selector: '[subController]',
  publishAs: 'subCtrl'
)
class SubController{

  @NgOneWay('user')
  User user;

  // constructor
  SubController(){
    getData();
  }

  void getData(){
    if(user != null){
      // following code is not exececutet, because user is null
      httpRequst(...);
    }
  }
}

用户何时设置为@NgOneWay?在构造函数完成之前似乎没有。我在哪里打电话给我的方法?

现在我有问题我必须在SubController类的getData函数中创建一个asynch请求。这个http请求需要user.name属性来构建域,但是当我在构造函数中启动它时用户不活动。我无法将验证设置为第二个控制器。必须有另一种选择才能使其发挥作用。

我用飞镖的未来尝试了几件事,但没有让我为一个属性工作。

1 个答案:

答案 0 :(得分:4)

以前是AttachAware界面。

class SubController implements AttachAware {
  attach() {
    getData();
    // or new Future(() => getData()); // if the line above still doesn't work - to give Angular one additional cycle to finish
  }
}