У меня проблема: я использую Angular, и мне тоже нужно использовать метод pushMsg
, но я не знаю, как это можно назвать, boxCtrl.pushMsg(msg)
не работает. Есть идеи?AngularJS вызов метода из контроллера в директиве?
app.directive("fileread", function (socket) {
return {
scope: {
fileread: "="
},
link: function (scope, element, attributes) {
element.bind("change", function (changeEvent) {
var msg = { author: 'me', class: 'me' };
// WHAT HERE???????
});
}
}
});
boxCtrl = function (socket, $scope) {
this.messages = [];
}
boxCtrl.prototype = {
pushMsg: function (message) {
this.messages.push(message);
}
}
app.controller('boxCtrl', boxCtrl);
передать функцию в область действия директивы или поместить ее в службу для обмена в любом месте приложения. – charlietfl
также должен использовать директивы 'ng' как можно больше, в вашем случае' ng-change'. Как только вы добавите свой собственный обработчик событий, вам нужно будет уведомить об угловом событии с помощью '$ apply' или' $ timeout' – charlietfl