1
我正在使用Pase.com和js SDK作爲我的Dart App的後端。除了解析sdk接受回調函數的對象之外,這工作正常。在飛鏢林不知道如何做到這一點,我可以得到單個回調工作正常。但我完全失去了這裏。Dart JS Interop - 如何傳遞函數的回調對象
正常解析JS的註冊用戶
var user = new Parse.User();
user.set("username", "my name");
user.set("password", "my pass");
user.set("email", "[email protected]");
// other fields can be set just like with Parse.Object
user.set("phone", "415-392-0202");
user.signUp(null, {
success: function(user) {
// Hooray! Let them use the app now.
},
error: function(user, error) {
// Show the error message somewhere and let the user try again.
alert("Error: " + error.code + " " + error.message);
}
});
我的DART代碼
void registerSuccess(user) {
print("success");
}
void registerFailed(user, error){
print("fail");
}
void register(String email, String password)
{
js.scoped(() {
var parse = js.context.Parse;
var parseUser = new js.Proxy(parse.User);
parseUser.set("username", "my name");
parseUser.set("password", "my pass");
parseUser.set("email", "[email protected]");
print(parseUser.getEmail());
var callbackSuccess = new js.Callback.once(() => registerSuccess());
var callbackFailed = new js.Callback.once(() => registerFailed());
parseUser.signUp(null,{"success":callbackSuccess, "error": callbackFailed});
//parseUser.signUp();
});
}
而且回調函數需要接受來自JS傳回瓦爾。
任何幫助將是一個讚賞,我已經旋轉我的輪2天在此上。
查閱即時得到 未捕獲的類 '()=>空隙' 沒有實例方法 '呼叫'。 NoSuchMethodError:找不到方法:'call' Receiver:Closure :(動態)=>無效函數'registerFailed':. 參數:[Proxy'的實例,'Proxy'的實例,'Proxy'的實例] – user2166822 2013-03-14 04:05:15
你得到這個錯誤是因爲registerFailed只接受2個參數,但接縫被3個參數調用。你必須將'registerFailed'改爲'void registerFailed(user,error,WAT)'。 – 2013-03-14 07:13:06
@AlexandreArdhuin,這裏使用了什麼庫?我無法找到js.scoped和這個問題中使用的其他方法。 'dart:js'沒有他們。 – 2014-02-01 16:42:55