私は、このディレクティブを使用します。AngularJSディレクティブ - 初期関数invoke
function communicationCreateFormDirective($timeout) {
var directive = {
restrict: 'E',
scope: {
selectedCommunicationGroups: '=',
currentUser: '='
},
templateUrl: 'app/communication/....html',
link: function($scope) {
...
connect();
をし、私が最初に関数が(接続起動します)が、私はエラーを取得:
angular.js:14110 ReferenceError: connect is not defined
また$ scope.connect ()は機能しません。誰もする方法を知っていますか?機能ザッツ
:
$scope.connect = function() {
var socket = new SockJS('/api/chat');
$scope.stompClient = Stomp.over(socket);
$scope.stompClient.connect({}, function(frame) {
console.log('webSocket Connected in communicationCreateForm.directive.js: ' + frame);
$scope.stompClient.subscribe('/topic/communication/' + $scope.currentUser.id, function(message) {
//vm.showMessage(JSON.parse(message.body));
alert('Message response QUMA: ' + JSON.parse(message.body));
});
});
}
まあまあ...未定義の関数を呼び出すと普通に起こります –
'$ scope.connect'関数はディレクティブスコープの外で定義されています別のコントローラでは?)次に、 'scope:{...}'オブジェクトを変更してディレクティブにバインドし、 'connect: '&''を追加する必要があります。次に、 '$ scope.connect()'を使ってディレクティブから関数を呼び出すことができるはずです(ただし、 'connect =" connect() "'属性を使ってビューのディレクティブにバインドすることを忘れないでください)。 –