0

私は2つのモデルを持っていますUser:Phone

Userモデルには、フィールドPhone_idが取り込まれる というフィールドがありPhone.idます。

すべての電話をループして、電話名と関連するユーザーの内線番号を表示しようとしています。

ただし、メソッドの成功メソッドに到達すると、コールバック (と思います) のせいで電話オブジェクトが消えてしまいましたgetUser

コードは以下です:

var User = sequelize.import(__dirname + '/../models/User.js');
var Phone = sequelize.import(__dirname + '/../models/Phone.js');

Phone.hasOne(User,{ foreignKey: 'Phone_id'});

Phone.findAll().success(function(phones){
  for (var i = 0; i < phones.length; i++) {
    phones[i].getUser().success(function(user){
      console.log(xxxx.Name, user.Extension);
    });
});

console.log ステートメント iow に電話名とユーザー内線番号を表示するにはどうすればよいですか? xxxx の代わりに何を入力する必要がありますか?

ありがとう !

4

2 に答える 2

0

テストされていませんが、次のようなものです

var User = sequelize.import(__dirname + '/../models/User.js');
var Phone = sequelize.import(__dirname + '/../models/Phone.js');

Phone.hasOne(User,{ foreignKey: 'Phone_id'});

Phone.findAll().success(function(phones){
  phones.forEach(function(phone) {
    phone.getUser().success(function(phone) {
      return function(user){
        console.log(phone.Name, user.Extension);
      }
    }(phone))
  })
});
于 2012-07-24T12:44:09.517 に答える
0

あなたがしたいことはこれです:

var User = sequelize.import(__dirname + '/../models/User.js');
var Phone = sequelize.import(__dirname + '/../models/Phone.js');

Phone.hasOne(User,{ foreignKey: 'Phone_id'});

Phone.findAll().success(function(phones){
  phones.forEach(function(phone) {
    phone.getUser().success(function(user){
      console.log(phone.Name, user.Extension);
    });
  })
});
于 2012-07-24T07:40:24.363 に答える