[2015 年 7 月 23 日更新] 我想创建一个按钮列表,每个marker
在ctrl.getMarkers()
. 让我们假设标记类似于
marker: {'title':' '}
.
使用经典的ng-repeat,我有以下
<div ng-repeat="marker in ctrl.getMarkers()" >
<button class="btn btn-default"
ng-click = "doSomething(marker)"
ng-style="ctrl.isRed() ? {color:red} : {color:black}">
<b> {{::marker.title}}</b>
</button>
</div>
我有大约 100 个按钮要显示,但更新速度并不快。所以我想试试ng-react库。不幸的是,我还不太了解如何使用它。
到目前为止,我写了这个:
HTML
<poi-list list="ctrl.getMarkers()" />
JS
/** @jsx React.DOM */
.value( "PoiList", React.createClass( {
propTypes : {
list: React.PropTypes.object.isRequired
},
getDefaultProps: function() {
return { list: [] };
},
render: function()
{
var markers = this.props.list.map( function( marker, i )
{
return React.DOM.button({className:'btn btn-default'
/*ng-click? ng-class?*/
}, marker.title) ;
} );
return React.DOM.div(null, markers);
}
}))
.directive( 'poiList', function( reactDirective ) {
return reactDirective( 'PoiList' );
} );
我如何将ng-click
,ng-class
等与 React DOM 元素一起使用?
这是JSFiddle
[更新 2]
我找到了解决方案,并在下面回答了我自己的问题。但是,我仍然遇到一个减慢反应速度的问题:“不推荐尝试访问非节点对象上的属性 'nodeType'”。请在下面查看我的答案以获取有关该错误的更多信息。谢谢