В моем угловом приложении, у меня есть несколько вложенных нг-повторы для разбора через несколько ожидаемых объектов JSON, например:Как передать фактический объект (т. Е. Ссылку на объект) в директиву?
{
landAnimals: {
horse: {
sound: "Nay",
legs: 4,
},
beaver: {
sound: "thwack",
legs: 2
}
},
waterAnimals: {
dolphin: {
sound: "Eee",
fins: 3,
},
goldfish: {
sound: "-",
fins: 1
}
}
}
В каком-то момент, что я хотел бы сделать, это передать категорию животных на мой директивы и другого объекта животного.
Например, если пользователь перетаскивает другое животное в список, созданный в моем приложении, я хочу добавить животное, которое он перетащил в JSON выше.
Для этого я пытаюсь передать объект животного в директиву, а затем добавить к нему новое животное.
Например:
<div ng-repeat="animalCategory in animals on-drop-success='animalCategory'">
<div ng-repeat="(key, value) in animalCategory">
{{key}}
</div>
</div>
, а затем в моей onDropSuccess
директивы, в функции link
, я пытаюсь (не беспокоиться о том, как я делаю перетаскивание, он не работает даже с помощью этого простого теста)
...
link: function (scope, element, attrs) {
attrs.onDropSuccess["newAnimal"] = {sound: "miy", legs: 2};
...
Подводя итог, я пытаюсь передать animalCategory
объект моей директивы, так что я могу добавить больше объектов под ним. Но это не работает. Он не добавляет объект, даже когда я вручную предоставляю наивный объект (т. Е. Он не имеет ничего общего с реализацией перетаскивания)
Любые идеи, почему это происходит?
Выполняется ли функция 'link' вашей директивы вообще? Если нет, исправьте свой шаблон, чтобы действительно использовать директиву как атрибут элемента (не являющийся частью выражения в 'ng-repeat'). – hon2a
Можете ли вы настроить скрипку, с которой мы можем играть? –
@MattWay Вот что-то очень похожее. Когда «Мальчик» или «Девушка» перетаскиваются, я хочу добавить к объекту человека его перетаскивание через http://codepen.io/Raphi/pen/dPoYvX – CodyBugstein