我有plunker here that demostrates it。
我可以创建两个指令。在这种情况下,一个名为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) {
}
};
});
和HTML:
<body ng-controller="MainCtrl">
zTest: <z-test></z-test><br/>
zMonthSelect: <z-month-select></z-month-select><br/>
</body>
答案 0 :(得分: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