[UPDATE 2015年7月23日] 我想創建一個按鈕列表,每個在ctrl.getMarkers()
之一。我們假設一個標記是類似 marker: {'title':' '}
。如何使ngReact使用ng指令(ngClick,ngStyle等)
採用了經典的NG重複,我有以下
<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
等與陣營DOM元素?
這裏的JSFiddle
[更新2]
我找到了解決辦法,我已經回答了下面我自己的問題。但是,我仍然遇到了一個緩慢的反應問題:「不推薦嘗試訪問非節點對象上的屬性'nodeType'」。請查看下面的答案以獲得有關錯誤的更多信息。謝謝
如果你想要速度,你最好做一個根組件,它渲染按鈕並傳遞一個數組,然後迭代而不是迭代。這樣,你完全繞過你的問題,因爲你只要包含一個組件就角度而言。 –
可否請你給我進一步的信息如何做到這一點?我一直在使用Angular,但這是與React的第一次交互。我的嘗試是完全錯誤的嗎?我正在使用包含按鈕列表的單個組件'PoiList'。 – DeLac
我已更新我的問題。 – DeLac