0

这是我的控制器:

angular
    .module('app')
    .controller('MyCtrl', MyCtrl);

Viewer.$inject = [];

function MyCtrl() {
  var vm = this;
  vm.titles = ['Hello', 'world'];
}

我的指令:

angular
    .module('app')
    .directive('myDirective', myDirective);

myDirective.$inject = [];

function flPagesArea($compile) {

    var directive = {
        link: link,
        restrict: 'EA',
        template: '<div ng-repeat="title in vm.titles">{{title}}</div>'
    };
    return directive;
}

结果是:

<!-- ng-repeat= title in vm.titles -->

是我使用控制器的问题还是我遗漏了一些东西。谢谢你。

4

1 回答 1

1

使用controllerAs选项和bindToController属性。还要检查与指令关联的函数的名称。在您的情况下,您永远不会将 flPagesArea 函数与模块中的指令声明相关联。

    angular
    .module('app')
    .directive('myDirective', myDirective);

myDirective.$inject = ['$compile'];

function myDirective($compile) {

    var directive = {
        link: link,
        restrict: 'EA',
        template: '<div ng-repeat="title in vm.titles">{{title}}</div>',
        controller: 'MyCtrl',
        controllerAs: 'vm',
        bindToController: true
    };
    return directive;
}
于 2015-12-16T17:11:04.873 回答