Worklight和Angular服务

时间:2014-04-03 17:21:43

标签: javascript angularjs ibm-mobilefirst worklight-adapters

从角度服务

调用IBM Worklight时,以下代码失败

我的角度服务正在调用工作灯适配器

 .factory('Profile', [
               function () {
               return {

               loadUserProfileSuccess:function(result){
                   if(result.statusCode = 200)
                      console.log("Succes");

               },

               loadUserProfileFailure:function (result){
                        console.log("failure");

               },
                  getUserProfile: function($rootScope,user){

                 var invocationData = {
                   adapter : 'RSSReader',
                   procedure : 'find_or_create',
                   parameters : [user.name,user.email]
                 };

                 WL.Client.invokeProcedure(invocationData,{
                    onSuccess : loadUserProfileSuccess,
                    onFailure : loadUserProfileFailure
                          });
               },
            }//end return

 }]);

调用worklight适配器时,程序端的所有内容都显示效果很好。但是,即使回调函数loadUserProfileSuccess被定义,但有角度也会抱怨......

Error: Can't find variable: loadUserProfileSuccess
getUserProfile@file:///...

1 个答案:

答案 0 :(得分:1)

您正试图错误地访问loadUserProfileSuccess。内联移动函数:

WL.Client.invokeProcedure(invocationData, {
  onSuccess: function (result) {
    if (result.statusCode = 200) console.log("Succes");
  },
  onFailure: function (result) {
    console.log("failure");
  }
});

或者在你要归还的对象之外声明它们:

factory('Profile', [

function () {
    var loadUserProfileSuccess = function (result) {
        if (result.statusCode = 200) console.log("Succes");

    };
    var loadUserProfileFailure = function (result) {
        console.log("failure");

    };
    return {

        loadUserProfileSuccess: loadUserProfileSuccess,

        loadUserProfileFailure: loadUserProfileFailure,
        getUserProfile: function ($rootScope, user) {

            var invocationData = {
                adapter: 'RSSReader',
                procedure: 'find_or_create',
                parameters: [user.name, user.email]
            };

            WL.Client.invokeProcedure(invocationData, {
                onSuccess: loadUserProfileSuccess,
                onFailure: loadUserProfileFailure
            });
        },
    } //end return


}]);