为ng-include反应js等价物

时间:2014-07-08 14:42:26

标签: reactjs

我正在使用Reactjs。我想在我的视图中包含部分HTML。像ng-include这样的东西。 这样做的最佳方式是什么?

<div>
    <ng-include src="myPageUrl"></ng-include>
</div>

我尝试了以下但没有运气 - 得到了

'Uncaught Error: Invariant Violation: traverseAllChildren(...): 
Encountered an invalid child; 
DOM elements are not valid children of React components'

我的代码看起来像这样(基于http://benalpert.com/react/tips/initial-ajax.html

var PageContainer = React.createClass({
  getInitialState: function() {
   return {
    page: "loading page ..." 
   };
  },
  componentDidMount : function(){
   $.get(url, function(result) {
   var data = result;
   this.setState({
    page: data
   });
  }.bind(this));
 },
 render: function () {
  return (
    <div id="page" className="PageContainer">
        {this.state.page}
    </div>
 );
}

});

1 个答案:

答案 0 :(得分:6)

根据React documentation

  

作为最后的手段,您始终可以插入原始HTML。

     

<div dangerouslySetInnerHTML={{__html: 'First &middot; Second'}} />

所以对你来说可能是:

render: function () {
  return (
    <div id="page" className="PageContainer"
      dangerouslySetInnerHTML={{__html: this.state.page}}
     >
    </div>
 );