如何以编程方式在Component中获取templateUrl?

时间:2015-02-18 07:13:24

标签: dart angular-dart

如果我有一个AngularDart组件:

@Component(selector: "my-selector",useShadowDom: false,
    templateUrl: "packages/test/test.html")
class MyComponent {
     MyComponent() {
     ...
     }
     ...
 }

如何以编程方式获取templateUrl? 我想避免注入Element的构造函数。注射的注射器就可以了。

1 个答案:

答案 0 :(得分:1)

找到答案:

@Component(selector: "my-selector", useShadowDom: false,
templateUrl: "packages/test/test.html")
class MyComponent {
    Injector _injector;

    MyComponent(this._injector) {
    }

    String get url {
        DirectiveMap _directiveMap = _injector.get(DirectiveMap);

        var tuples = _directiveMap['my-selector'];
        //Validate.isTrue(tuples[0].directive is Component);
        Component annotation = tuples[0].directive;
        //_logger.info("TemplateUrl: ${annotation.templateUrl}");

        return annotation.templateUrl;
    }
}