The Angels traded disappointing right-hander Jeff Weaver to the Cardinals on Wednesday night for minor league outfielder Terry Evans. Weaver, 29, was designated for assignment last Friday after going 6-10 with a 6.29 ERA in 16 starts this season. He signed a one-year, $8.3 million contract as a free agent during the offseason. Los Angeles GM Bill Stoneman said the Cardinals will assume Weaver's contract, but the Angels will give St. Louis an undisclosed amount of cash in the deal.