使用没有" controllerAs"的模板字首

时间:2016-02-10 13:53:03

标签: javascript angularjs

如果您看到该代码,您会注意到我将template属性设置为{{$.aaa}}。有没有办法避免在变量之前使用controllerAs前缀并使用{{aaa}}形式的模板?

(function(){
    "use strict";

    class Controller {
        constructor(){
            this.aaa = 111;
        }

        doSomething(){
            alert(this.aaa)
        }
    }

    var app = angular.module('app', []);

    app.directive('any', function() {
        return {
            restrict: 'E',
            controller: Controller,
            controllerAs: '$',
            template: '{{$.aaa}}'
        };
    });
})();

1 个答案:

答案 0 :(得分:0)

将$ scope注入您的控制器构造函数,然后将您的属性附加到范围。

class Controller {
    static $inject = ["$scope"];

    constructor($scope) {
        $scope.aaa = "value";
    }
}

并且:

app.directive('any', function() {
    return {
        restrict: 'E',
        controller: Controller,
        template: '{{aaa}}'
    };
});