2016-06-28 4 views
0

ポイントが見つからない箇所は表示されませんが、ng-clickで機能を呼び出すことはできません。ボタンでng-clickが機能していない

私のHTML要素:

<div class="field"> 
    <%= f.label :foto %><br> 
    <input type="hidden" name="visitante[foto]" id="visitante_foto" ng-model="foto" ng-value="foto"/> 
    <video id="video" width="640" height="480" autoplay></video> 
    <canvas id="canvas" width="640" height="480"></canvas> 
    </br> 
    <button type="button" id="snap" ng-click="tirarFoto()">Tirar Foto</button> 
</div> 

マイ角度コントローラ:

angular.module('controleVisitantes', ["angucomplete-alt"]) 
    .controller('controllerVisitantes', ['$scope', function ($scope) { 
    $scope.tirarFoto = function() { 

     var canvas, context; 
     canvas = document.getElementById('canvas'); 
     context = canvas.getContext('2d'); 
     context.drawImage(video, 0, 0, 640, 480); 
     $scope.foto = canvas.toDataURL(); 

    }; 
}]) 

EDIT: 私はRuby on Railsでを使用しています。 は、私は私の関数の外で働いているvisitantes/new.html

console.log()<div>で私<body>とNG-コントローラにNG-アプリを追加しましたが、私は、任意の関数を呼び出すことはできません。

ng-clickで<a>,<div><canvas>を試しました。

+0

テンプレート全体を表示できますか? – AranS

+0

canvas要素のIDが "canvas"か、その要素を選択しようとしていますか?あなたはこのようなHTMLを見ますか? '? +1、AranSのコメントは、あなたのコードをすべて投稿してください。 –

+0

あなたのjsは正常に見えます、あなたはあなたのマークアップで何かを見逃す可能性があります、ng-appとng-controllerの定義を確認してください。私が間違っていたのはここ があなたのngのクリックを実行しているplunkr例で、スクリプトが正常に動作し、あなたのボタンmarkkupが – trickpatty

答えて

0

を使用している場合 はまた、作業plunkerです:https://plnkr.co/edit/4kwNhD?p=info スクリプトは、私には正常に見えます。

<html> 
    <head> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.7/angular.min.js"></script> 
    <script src="script.js"></script> 

    </head> 
    <body ng-app="controleVisitantes"> 
    <div ng-controller="controllerVisitantes"> 
     <button type="button" id="snap" ng-click="tirarFoto()">Tirar Foto</button> 
    </div> 
    </body> 
</html> 

また、私は非常にあなたのアプリケーションのためのスタイルガイドと標準命名規則以下のお勧めします。うまくいけば、それは次のようになり、あなたのマークアップを確認してください。 John Papa'sスタイルガイドは、角度のあるコミュニティで非常に人気がありますが、他にもあります。これは、アプリのサイズが大きくなったり、チームが大きくなったりするときに重要になります。

0

index.htmlのコントローラのファイルをリンクしましたか?

私は推測できるコードが少ししかないので、 テンプレートは正しいng-controller内にネストされているか、正しいルーティングを通じてコン​​トローラにリンクされていますか?あなたがここにあなたが名前の関数呼び出しの前に付ける必要があるだろうcontrollerAs構文(例えばVM)

<button type="button" id="snap" click="vm.tirarFoto()">Tirar Foto</button>ng- 
関連する問題