1

私は2つの観測可能な配列を持っています:

var viewModel = {
    PositionTypes: ko.observableArray([]),
    Users: ko.observableArray([])
}

位置ビューモデル

var positionViewModel = function (data) {
        var _self = this;
        _self.PositionName = ko.observable(data.PositionName);
        _self.PositionRank = ko.observable(data.PositionRank);
        _self.ContentRole = ko.observable(data.ContentRole);
    }

    positionViewModel.AddPositions = function (data) {
        $.each(data, function (index, value) {
            positionViewModel.PushPosition(value);
        });
    };

    positionViewModel.PushPosition = function (postion) {
        viewModel.PositionTypes.push(new positionViewModel(position));
    };

ユーザー ビューモデル

    // the ViewModel for a single User
    var userViewModel = function (data) {
        var _self = this;
        _self.ID = ko.observable(data.ID);
        _self.Name = ko.observable(data.Name);
        _self.Email = ko.observable(data.Email);
        _self.ContentRole = ko.observable(data.ContentRole);
    };

    userViewModel.AddUsers = function (data) {
        $.each(data, function (index, value) {
            userViewModel.PushUser(value);
        });
    };


    userViewModel.PushUser = function (user) {
        viewModel.Users.push(new userViewModel(user));
    };

各位置のすべてのユーザーを取得できるように、すべての位置をループできるように linq.js を使用するにはどうすればよいですか?

foreach( each position in positions)
{
    foreach(each user in users)
    { list of users for the position}
}
4

2 に答える 2

0

次のようにko.utils.arrayForEachを使用することもできます。

ko.utils.arrayForEach(viewModel.PositionTypes(), function(position){    
     var usersInPosition = ko.utils.arrayFilter(viewModel.Users(), function(user){
          return user.ContentRole() == position.ContentRole();
     });
     ko.utils.arrayForEach(usersInPosition, function(user){        

    });
});

ドキュメントを参照

お役に立てば幸いです。

于 2013-10-01T07:25:32.257 に答える