2017-01-12 7 views
0

私の角グリッドに問題があります。ng-click時の関数呼び出し(cellTemplate)

これは私のコードです:

私は機能doSomethingのを(呼び出すしたいと思います)が、これは機能しません...

ごideiaを持っていますか?

ありがとうございます!代わりにあなたのng-click="grid.appScope.doSomething()"

をNGクリックしても、私に知らせて、あなたのセルテンプレートにHTMLを追加しながら、あなたは$compileを使用しなかったのng-click="doSomething()"を変更する

+0

あなたは$コンパイラを使用しましたか? –

+0

いいえ、私は$ compilerを使用しませんでした... –

答えて

1

を生成し、あなたは、関数が呼び出されていないので、命名の問題を持っています。

もう1つのことは、このようにhtmlを追加すると、Angularが実際にjavascriptとして追加したこのディレクティブを実際に登録する必要があることです。それは、HTMLで直接角度指示を書くとき、アプリが実行を開始するときに、HTMLテンプレートを通り、ng-clickのような指示文を探してHTMLコードに変換するからです。

アプリの実行中に手動で角度でhtmlコードを追加する場合は、このコンパイルを手動で開始する必要があります。

それはSurenが話していたコンパイルです。

もう1つ:あなたのコードを見ると、簡単にテンプレートでこれを行うことができるようです。あなたは、このマニュアルのコンパイルを行う必要はありませんイム何をやろうとしているが、そのおそらくなんとか良い方法されているかわからない、など

+0

おかげで@マイカルタカチ!これを行う方法を教えてください:もう一つ:あなたのコードを見ると、簡単にテンプレートでこれを行うことができるようです。あなたは何をしようとしているのか分かりませんが、このマニュアルをコンパイルする必要はありません。 –

+0

なぜこのボタンを追加しているのか説明できますか?病気が病気を作り上げようとしている場合は、おそらくもっと洗練された解決策を手伝うことができます。このボタンを何を追加しているかに基づいていますか?場合によっては削除する必要がありますか?別のデータを追加しているのですか? –

+0

ニース! グリッドがあり、グリッドの最後の列は「アクション」です。この列には、行の内容を削除および編集するためのボタンがあります。 –

0

してみてください。

$手段をコンパイルするには:テンプレートにHTML文字列またはDOMをコンパイルし、前述したように、テンプレート関数

+0

私は$ compiler =/ を使用していません。私は角張っています...そしてこれが何であるか分かりません... –

+0

あなたは試しましたか?私の答え?それがうまくいかない場合は試してみてください。このリンクをご覧ください:https://docs.angularjs.org/api/ng/service/$compile –

+0

はい!私はあなたの答えを試みたが、それは動作しません... –

0

ここソリューション

cellTemplate: '<div id="btn_excluir" ng-click="grid.appScope.doSomething()" class="btn primary glyphicon glyphicon-trash"></div> <div class="btn primary glyphicon glyphicon-edit" onclick="alert();"></div>' 

    var vm = this; 
    vm.gridOptions.appScopeProvider = vm; 
    vm.doSomething = function() { 
     alert("ALERT!"); 
    } 
+0

このコードをご覧いただきありがとうございます。すぐに役立つかもしれません。適切な説明は、なぜ*これが問題の良い解決策であるかを示すことによってその教育上の価値を大幅に改善し(// meta.stackexchange.com/q/114762)、将来の同様の、しかし、同一ではない質問。説明を追加するためにあなたの答えを[編集]し、どんな制限と前提が適用されるかを示してください。 –

関連する問題