加载变量时运行函数

时间:2014-02-28 18:43:43

标签: angularjs dart angular-dart

我有一个NgComponent,它应该根据标签中的参数从另一个文件加载数据。这是一个示例标记:

<line-graph width="800" height="250" src="table.csv" />

如果我尝试在构造函数中基于src变量加载数据,则它为null。我知道价值正在设定,只是在以后。当元素完全初始化并且从该DOM加载变量时,有没有办法调用load函数?

2 个答案:

答案 0 :(得分:1)

实施NgAttachAware并在attach()中运行您的代码。 我读到了一个错误,即使这最近也没有使用某些指令。 在这种情况下,尝试使用new Future(() { your code here });

运行附加内部的代码

要在每次更改值时执行代码,您可以使src成为一个setter,并且每次更改值时都会执行setter中的代码。

String _src;
@NgTwoWay('src')
String get src => _src;
set src(String val) {
  _src = value;
  // your additional code goes here
}

答案 1 :(得分:0)

You can accomplish this by using the $watch function. $watch功能将在下一版本中重命名为watch。以下是一个示例实现:

class Component {

  @NgAttr("src")
  String src;

    Scope scope;
    Component(this.scope){
    scope.$watch(() => src, (value, previousValue){
      if (value == null) return;

      //load and draw data
    })
  }
}

在下一个版本中,它看起来像这样:

class Component {

  @NgAttr("src")
  String src;

    Scope scope;
    Component(this.scope){
    scope.watch(src, (value, previousValue){
      if (value == null) return;

      //load and draw data
    })
  }
}