Angular 1.6组件包含指令

时间:2017-07-17 22:55:13

标签: javascript angularjs

我们有一个广泛使用指令构建的现有系统。我试图用组件慢慢地,一点一点地替换它。 我有一个看起来像这样的组件:

var GenericDataController = (function () {
    function GenericDataController() {
        this.dtoData = '';
    }
    GenericDataController.prototype.$onInit = function () {
        this.dto = angular.fromJson(this.dtoData);
    };
    return GenericDataController;
}());
var GenericData = (function () {
    function GenericData() {
        this.bindings = {
            dtoData: '@',
        };
        this.controller = GenericDataController;
        this.templateUrl = 'GenericDataTemplate';
    }
    return GenericData;
}());
App.component('generic', new GenericData());

泛型接受一个json字符串dtoData,需要将其解析为控制器中的dto对象。然后在模板中我有一堆旧的指令,如:

<div directive1="{{$ctrl.dto.Directive1}}"
     directive2="{{$ctrl.dto.Directive2}}">
</div>

当您在指令compile函数中放置断点时,您会发现tAttrs {{$ctrl.dto.Directive1}}中的断点尚未解析,即保留为字符串 “{{$ ctrl.dto.Directive1}}”。无论如何,它们可以在compile函数中解决,以便它可以工作吗?我正在尝试这样做,因为更换所有内容可能需要一段时间,而且我无法立即测试结果。

谢谢:)

编辑:实际上已经发现,在compile内更深处,您可以访问attrs tAttrs,但已解析为值...所以请考虑解决此问题。

1 个答案:

答案 0 :(得分:0)

实际上已经发现,compile内部attrs更深入了tAttrs Swagger - UI,但已被解析为值......所以请考虑解决此问题。