即時通訊使用這個插件:http://www.codingdrama.com/bootstrap-markdown/無極Angularjs 1.6如何強制函數等待API響應
我想鉤onPreview
於是就onPreview
我儘量讓我的API調用:
app.directive("markdowntextarea",function ($http, $q) { // inject $q
return {
link: function (el_scope, element, attr) {
element.markdown(
{
autofocus: false,
savable: false,
onPreview: function (e) {
var deferred = $q.defer();
if (e.isDirty()) {
var originalContent = e.getContent();
$http({
url: '/api/markdown/',
data: {"body": originalContent, "actual_format": "md"},
method: 'POST'
}).then(function successCallback(response) {
console.log("successCallback", response.data.content);
deferred.resolve(response.data.content);
}, function errorCallback(response) {
console.log("errorCallback");
deferred.reject("error");
});
} else {
deferred.resolve("");
}
return deferred.promise;
}
}
);
}
}
});
控制檯:
successCallback from api!!!
我從api獲得了成功響應,response.data.content就是我想要使用的。這裏的問題是return deferred.promise;
始終返回原始值。我能在這裏做什麼?我真的是新角色
的文檔您的questrion是什麼?你想要什麼? – DAG
我想將我的呼叫回復給api。目前我無法返回,始終返回原始值。謝謝 – 62009030
您只需將它稱爲onPreview()。然後(()=> {})。你是這個意思嗎?否則你的問題是不完整的,我猜。發佈完整的代碼! – DAG