AngularJS:从自定义指令中调用自定义指令似乎不起作用

Ben*_*esh 0 javascript directive angularjs

这里有一个能够说明它掠夺者.

我可以创建两个指令.在这种情况下,一个名为zMonthSelect,另一个名为zTest,引用zMonthSelect.如果它们是嵌套的,Angular似乎不喜欢它们.这是为什么?我该怎么办才能修复它?

这是代码:

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

app.controller('MainCtrl', function($scope) {
});

app.directive('zMonthSelect', function () {
    return {
        restrict: 'E',
        priority: 1000,
        scope: {
            month: '=month'
        },
        template: '<select ng-model="month">' +
            '<option value="1">Jan</option>' +
            '<option value="2">Feb</option>' +
            '<option value="3">Mar</option>' +
            '<option value="4">Apr</option>' +
            '<option value="5">May</option>' +
            '<option value="6">Jun</option>' +
            '<option value="7">Jul</option>' +
            '<option value="8">Aug</option>' +
            '<option value="9">Sep</option>' +
            '<option value="10">Oct</option>' +
            '<option value="11">Nov</option>' +
            '<option value="12">Dec</option>' +
            '</select>',
        controller: function($scope) {
        }
    };
});


app.directive('zTest', function(){ 
  return { 
    restrict: 'E',
    priority: 1,
    scope: {},
    template: 'Test: <z-month-list month="1"></z-month-list>',
    controller: function($scope) {
    }
  };
});
Run Code Online (Sandbox Code Playgroud)

和HTML:

<body ng-controller="MainCtrl">
  zTest: <z-test></z-test><br/>
  zMonthSelect: <z-month-select></z-month-select><br/>
</body>
Run Code Online (Sandbox Code Playgroud)

dnc*_*253 5

您的指令名称不匹配.在zTest您尝试使用<z-month-list>的指令中,但您的指令已命名zMonthSelect.只需将您的zTest指令更改为我们<z-month-select>.请参阅http://plnkr.co/edit/x2i8lv?p=preview

或者您可以将内部指令重命名为zMonthList.请参阅http://plnkr.co/edit/aQlSqK?p=preview