2017-11-27 13 views
0

ポップアップを開くボタンがあり、addRow関数が呼び出されて行が追加されます。この行には、新しい行を追加するためのボタンがあります。しかし、これをクリックすると関数が呼び出されず何も起こりません。助けてください。Angularjsボタンがクリックできない

<body ng-app="myApp" ng-controller="myCtrl"> 
    <div id="sample"><!-- onload="init()">--> 
     <h3>Make your own Flowchart</h3> 

     <button ng-click = "addSystem()" type="submit" id="btn-save">Add System</button> 

コントローラコード内では、次のように開始されます。

<script type="text/javascript"> 
    var app=angular.module('myApp',[]); 
    app.controller('myCtrl', function($scope) 
{ 
    $scope.sysInfo=[]; 

後、私はaddSystem機能を持って、次のとおりです。

$scope.addSystem=function() 
{ 
    console.log("Inside add system"); 
    var str="<form><table id=\"sysTab\"></table></form>"; 
    console.log("str is "+str);  
    $(str).dialog({ 
            modal: true, 
            title:"Add system info", 
            height:"auto", 
            width:"auto", 
            buttons: { 
             'OK': function() { 
              //console.log($('#sysName')); 
              init(); 
              $(this).dialog("close"); 
             }, 
              'Cancel': function() { 
              $(this).dialog('close'); 
             } 
            } 
           }); 
    $scope.addRow(); 
} 
$scope.addRow=function() 
{  
    $scope.index=$scope.index+1; 
    console.log("index is "+$scope.index); 
    console.log("Inside add row"); 
    $('#sysTab').append("<tr><td>System Name : </td><td><input rowid=\""+$scope.index+"\"type=\"text\" id=\"sysName"+$scope.index+"\"/></td><td><input type=\"text\" class=\"basic"+$scope.index+"\"/></td><td><input type=\"button\" value=\"+\" ng-click=\"addRow("+$scope.index+")\" title=\"Add new system info\"/></td><td><input type=\"button\" value=\"-\" onclick=\"deleteRow(this)\" title=\"Delete system info\"/><p id=\""+$scope.index+"\" style=\"display:none;\"></p></td></tr>"); 
    console.log("row added"); 

    $(".basic"+$scope.index).spectrum({ 
     color: "#f00", 
     change: function(color) { 
      console.log("Inside change"); 
      console.log($('#sysName'+$(this).closest('tr').index()).val()); 
      sysInfo.push({"index":$(this).closest('tr').index(), "name": $('#sysName'+$(this).closest('tr').index()).val(), "color":color.toHexString()}); 
      console.log(sysInfo); 
     } 
    });  
} 

私は$ scope.addRow(として呼び出してみました)しかし、私は何の応答を取得していないのです。私は何の成功もせずにたくさん試しました。どんなポインタでも大変役に立ちます。

+0

私は​​<入力タイプを使用しようとしました\ "ボタン\"値\ " - \" onclick = \ "$ scope.deleteRow(これ)\"タイトル= \ "削除するシステム情報\" />エラー$ scopeはHTMLInputElement.onclickで定義されていません ng-clickを使用するとコンソールエラーはありませんが、関数は呼び出されません –

+0

これはほとんど読めません。質問を編集してコードスニペットを作成してみてください – tanmay

答えて

0

定義されていない$スコープの問題が明示的にangular.element(のdocument.getElementById(「ここでは、マスターdiv要素」)としてスコープを呼び出すことによって解決される。スコープ()

関連する問題