小编jas*_*via的帖子

如何在Angular2中为@Input设置默认参数?

假设我有一个显示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]' }}.

javascript typescript angular

21
推荐指数
1
解决办法
1万
查看次数

在React.js中改变复杂状态的最佳方法是什么?

这是一个简单的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)

javascript reactjs

4
推荐指数
1
解决办法
1127
查看次数

标签 统计

javascript ×2

angular ×1

reactjs ×1

typescript ×1