Found a way to do what I was trying to do with React, including the same react code I had above, I saved the angular compile dependency and saved it to the angular body and called the react render like:
myApp.controller 'MainCtrl', ['$scope', 'fetcher', '$compile', ($scope, fetcher, $compile) ->
$scope.$root.activeScope = $scope
angular.$compile = $compile
$scope.items =
list: []
more: true
fetcherCallback = (latest, callback) ->
$scope.items.list = $scope.items.list.concat(latest)
offset = $scope.items.list.length
$scope.items.more = true
callback(latest) if callback
React.renderComponent feedRepeat(scope: $scope), document.getElementById('feedRepeat')
Then using the react iterator I called each template, and in each template after the template was mounted, I compiled the html based on given selector and passed in the new scope like:
/** @jsx React.DOM */
var MVItems = MVItems || {};
MVItems.soundcloud_favorite = React.createClass({
componentDidMount: function () {
// grab the selector
this.selector = document.querySelector('[data-reactid="' + this._rootNodeID + '"]');
// connect it with Angular's infrastructure so we can use the contollers
angular.$compile(this.selector)(this.$scope);
},
render: function () {
this.$scope = this.props.scope;
var item = this.$scope.item;
return (
<html here....>
)
}
}
Then afterwards, any angular specific markup will be parsed in the componentDidMount method