假设我有一个显示name属性的组件,所以它大致如下:
import {Component, Input} from 'angular2/core';
@Component({
selector: 'demo',
template: `<div>{{name}}</div>`,
styles: [``],
})
export class Demo {
@Input() name: string;
}Run Code Online (Sandbox Code Playgroud)
问题是,[noname]当有人使用这个组件但没有传递任何name属性时,我怎么能显示?
想到的唯一解决方案就是在模板中使用逻辑运算符{{ name || '[noname]' }}.
这是一个简单的React组件,它呈现一个列表,当单击列表项时,该项添加一个名为的className selected.
var CX = React.addons.classSet;
var List = React.createClass({
getInitialState: function(){
return {
items: this.props.items
}
},
handleItemClick: function(item){
item.isSelected = true;
//hack
this.forceUpdate();
},
render: function(){
var self = this;
var items = this.state.items.map(function(item, index){
var className = CX({
'item': true,
'selected': item.isSelected
});
return (
<li key={index}
onClick={self.handleItemClick.bind(self, item)}
className={className}>
item.name
</li>
);
});
return (
<ul>
{items}
</ul>
);
}
});
var items = [{
name: 'Apple',
value: 1
}, {
name: 'Microsoft',
value: 2 …Run Code Online (Sandbox Code Playgroud)