Просто устремив голову вокруг Углового - не понимая нескольких понятий, поскольку я родом из школы мышления.Вложенные директивы/контроллеры в угловом поле
Для начала я выбрал случайный проект: карточную игру.
Предположим, что я хотел определить контроллер hand
и контроллер card
. Для простоты я хочу иметь их в качестве директив.
Вот директива карты:
app.directive('card', function(){
return {
restrict:'E',
templateUrl:'card.html',
controller:function($scope){
this.suit = 'clubs';
this.rank = 'a';
this.suitClass = function(){
return this.suit + '-' + this.rank;
}
},
controllerAs:'card'
};
});
А вот рука директива:
app.directive('hand', function(){
return {
restrict:'E',
template:'hand.html',
controller:function($scope){
this.cards = [
{suit:'clubs', rank:'a'},
{suit:'spades', rank:'10'},
{suit:'hearts', rank:'2'},
{suit:'diamonds', rank:'k'}
];
},
controllerAs:'hand'
}
});
С following plunker, я ожидал, чтобы иметь возможность просто упасть в <hand></hand>
элемент и есть угловые делают всю работу для меня. В моем сознании глаз должны быть карточки, представляющие различные костюмы, вложенные в директиву <hand>
. Что мне не хватает? В настоящее время, как вы можете сказать в плункере, вложенный контроллер/директива не создает экземпляр представления правильно.
Я думаю о слишком большом пути MVC? ООП преследует меня? Или угловато просто плохо спроектировано?
[Завершился ваш плункер] (http://plnkr.co/edit/b3PcWwu3diyAvMaPakpi?p=preview) с некоторыми незначительными изменениями, «карта» от контроллераА и «карта» из повторного вида, разбившегося в этой области. Это далеко не идеальное решение, но хотелось сделать как можно меньше изменений, чтобы вы могли видеть, как это можно настроить для работы. – JimL
@ JimL Спасибо за плункер. Так ли я прав, предполагая, что между двумя представлениями нет реальной взаимосвязи, согласитесь, что свойства из 'hand' получаются композиционно добавленными к новой« карточке »через пространство имен $ scope? – shennan