に変換します。ポストで取り出されたhtmlをコンテナに追加する関数を持つ角度コントローラがあります。私はその中のdivをクリックして、何らかのデータをクリックしてvar結果を設定することができます。
<div onclick="var result = {"some":"data", "right":"here"}...
問題は、コールバック関数の機能を保持しています。これは私が変換しようとしているものです。
jQuery.post(url, {
'callback': "callbackFunctions.setData(result);callbackFunctions.closeDialog();",
'return_type' : 'json'
},
function (json) {
if (json.success) {
jQuery('#template').html(json.message);
}
}, 'json');
このスニペットでは、現在、角度コントローラーの外部機能が使用されています。
var callbackFunctions = {
closeDialog: function() {
angular.element('#template').dialog('close');
},
SetData: function (result) {
var scope = angular.element('.variables img:visible').scope().$parent;
scope.$apply(function(){
jQuery.extend(true, scope.variables, {
url: result.url,
name: result.name,
thumbnail: result.thumbnail,
value: result.url
});
});
}
};
これは最もクリーンな解決策ではないと思います。現在、私はちょうどこれを角度の$ httpリクエストに変換し、コールバック関数を動作させるように見えます。理想的にはこれは$ http.postであり、関数を呼び出すときにはコントローラ内にあるので、すでにスコープにアクセスできます。
私はhttpを変更できません。まだ更新されていない他の大部分のサイトで使用されていることをリクエストしています。
'$ http.post(url、data).then(sucessCallback、erro rCallback) ' – Satpal
https://docs.angularjs.org/api/ng/service/$http#post – madalinivascu
私はhtmlをコンテナに入れる方法を知っています。そのコンテナ内の要素をクリックするときにトリガする必要がある関数を追加するにはどうすればよいですか。コールバックを確認してください。jQueryデータにある関数は、私が傾ける部分は機能しません。 –