2016-06-12 2 views
0

クイックとすぐに、私は次のようしている問題:私はエンバー内のコンポーネント内の二つのアクション以下のいるEmber - アクション内で結果が定義され、親アクションでログインした同じアクションの戻り値は未定義ですか?どうして?

createData: function(user) { 
    let collection = []; 
    for (let i = 0; i < user.posts.length; i++) { 
     let data = this.send('createSingleData',user.posts[i], user, 'post'); 
     console.log(data); 
     collection.push(data); 
    } 
    return collection; 
}, 
createSingleData: function(data, user, type) { 
    let entitySkeleton = { 
      name: data.place.name, 
      belongsTo: user.id, 
      position: { 
       data.place.location.longitude, 
       data.place.location.latitude 
      } 
     }; 
    console.log(entitySkeleton); 
    return entitySkeleton; 
} 

最初のログ - createSingleData内で、右のログイン値を返す前には - entitySkeletonとしての書き込みを行いますオブジェクトをコンソールに挿入する。

しかし、にconsole.log(データ) - createData内は - コンソールに '未定義' に書き込みます。

私は尊敬していなかったasynchrounosityのあらゆる側面はありますか?

P.S: は私もcreateSingleData内の任意のparamaterを記録し、それらがすべて正しく設定されています。 変数コレクションも '未定義'にプッシュされます。

答えて

0

あなたは代わりにあなたがアクションからプロパティを設定することができ、アクションから値を返すことはできません。このソリューションで

how to return values from actions in emberjs

actions: { 
    PrintSomething: function() { 
     let obj = [{a: 'raj'}, {a: 'Prudvi'}, {a : 'thimappa'}]  
     console.log('before', obj); 
     this.send('returnSomething', obj); 
     console.log('after calling action', this.get('returnvalue')); 
    }, 

    returnSomething: function(obj) { 
     obj.push({a: 'FSDFSDF'}) 
     var data = obj; 
     this.set('returnvalue', data); 
    } 
} 
+0

私の問題は、私は計算を行うので、私は値を返す必要が複数のアクションを持っていること、です。 – dagopert

+0

すべてのアクション内でアクセス可能なアクション外の値を返すことができるjavascript関数を定義する可能性はありますか? – dagopert

+0

別のjsファイルでjavascript関数としてcreateSingleDataを作成し、そのファイルをインポートしてから、データを返すcreateSingleDataを呼び出すことができます。 –

関連する問題