Javascript 角度2双向数据绑定还是什么?

Javascript 角度2双向数据绑定还是什么?,javascript,angularjs,Javascript,Angularjs,嗨,伙计们,我需要你们的帮助,所以感谢开始:) 我试着在angular 2应用程序上加载一堆灯泡状态和动作按钮,让它们启动/关闭。 下面的代码正在工作,但只在计算机a上的一个网页上。如果我在计算机B上同时加载网页,a上的每一个更改都不会出现在B上。我尝试进行两个数据绑定,但它会给我相同的结果,所以我不知道这是不是真正的问题,或者可能是服务器没有更新到其他客户端?你觉得怎么样 import {Component, Inject} from "angular2/core"; import {HTTP

嗨,伙计们,我需要你们的帮助,所以感谢开始:)

我试着在angular 2应用程序上加载一堆灯泡状态和动作按钮,让它们启动/关闭。 下面的代码正在工作,但只在计算机a上的一个网页上。如果我在计算机B上同时加载网页,a上的每一个更改都不会出现在B上。我尝试进行两个数据绑定,但它会给我相同的结果,所以我不知道这是不是真正的问题,或者可能是服务器没有更新到其他客户端?你觉得怎么样

import {Component, Inject} from "angular2/core";
import {HTTP_PROVIDERS, Http, Headers} from "angular2/http";
import {LedService} from "./to-service";
import {LedModel} from "./to-model";
import {LedStatus} from "./to-status";
// import {LedButton} from "./to-button";

@Component({
  selector:'led-list',
  providers: [HTTP_PROVIDERS],
  directives:[LedStatus],
  template:`
  <table>
    <thead>
      <th>Component</th>
      <th>Status</th>
      <th>Action</th>
    </thead>
    <tbody *ngFor="#led of ledService.leds">
    <tr>
    <td>{{led.name}}</td>
    <td><led-status [led]="led"></led-status></td>
    <td><button (click)="onClick(led)" >on</button>
    <button (click)="offClick(led)">off</button></td>
    </tr>
    </tbody>
  </table>`,
  styles:[`
    h1 {
      color: #f39c12
    }
    div {
      padding: 10px;
      color: #bdc3c7;
    }
    table, th, td {
      border-bottom : 2px solid grey;
      border-collapse: collapse;
      padding: 10px;
      text-align: center;
      color: #bdc3c7;
    }
    tr:hover {
      background-color: #7f8c8d;
    }
  `]
})
export class LedList{
  // public ledArray:LedModel[]=[];

  constructor(
    public ledService:LedService,
    public http:Http
  ){
    this.http.get('/api/bears').subscribe(res => {
      this.ledService.leds = res.json();
      // this.ledArray = res.json();
      console.log(this.ledService.leds);
    });
    // console.log(this.data);
  }
  active:boolean = false;
  toggleActiveState() {
    this.active = !this.active;
  }

  onClick(value){
    value.status = "on";
    value.color = "green";
    console.log(value.name,value.status);
    var modChange = "name="+ value.name + "&pin=" + value.pin + "&status=" + value.status +"&color=" + value.color;
    var header = new Headers();
    header.append('Content-Type', 'application/x-www-form-urlencoded');
    this.http.put('http://localhost:8080/api/bears/' + value._id,modChange,{
      headers: header
    })
    .subscribe(
      res => console.log(res.json())
    )
  }
  offClick(value){
    value.status = "off";
    value.color = "red";
    var modChange = "name="+ value.name + "&pin=" + value.pin + "&status=" + value.status +"&color=" + value.color;
    var header = new Headers();
    header.append('Content-Type', 'application/x-www-form-urlencoded');
    this.http.put('http://localhost:8080/api/bears/' + value._id,modChange,{
      headers: header
    })
    .subscribe(
      res => console.log(res.json())
    )
    //console.log(this.buttonOffModel);
  }
}
import{Component,Inject}来自“angular2/core”;
从“angular2/HTTP”导入{HTTP_提供者,HTTP,头文件};
将{LedService}从“/导入服务”;
将{LedModel}从“/导入模型”;
从“/”导入{LedStatus}”;
//从“/”导入{LedButton};
@组成部分({
选择器:'led-list',
提供者:[HTTP_提供者],
指令:[状态],
模板:`
组成部分
地位
行动
{{led.name}
在…上
关
`,
风格:[`
h1{
颜色:#f39c12
}
div{
填充:10px;
颜色:#bdc3c7;
}
表,th,td{
底边:2倍纯色灰色;
边界塌陷:塌陷;
填充:10px;
文本对齐:居中;
颜色:#bdc3c7;
}
tr:悬停{
背景色:#7f8c8d;
}
`]
})
导出类列表{
//公共LED阵列:LED型号[]=[];
建造师(
公共服务:公共服务,
公共http:http
){
this.http.get('/api/bears').subscribe(res=>{
this.ledService.led=res.json();
//this.ledArray=res.json();
console.log(this.ledService.led);
});
//console.log(this.data);
}
活动:布尔=假;
toggleActiveState(){
this.active=!this.active;
}
onClick(值){
value.status=“on”;
value.color=“绿色”;
日志(value.name,value.status);
var modChange=“name=“+value.name+”&pin=“+value.pin+”&status=“+value.status+”&color=“+value.color;
var header=新的Headers();
header.append('Content-Type','application/x-www-form-urlencoded');
this.http.put('http://localhost:8080/api/bears/“+value.\u id,modChange{
标题:标题
})
.订阅(
res=>console.log(res.json())
)
}
关闭单击(值){
value.status=“关”;
value.color=“红色”;
var modChange=“name=“+value.name+”&pin=“+value.pin+”&status=“+value.status+”&color=“+value.color;
var header=新的Headers();
header.append('Content-Type','application/x-www-form-urlencoded');
this.http.put('http://localhost:8080/api/bears/“+value.\u id,modChange{
标题:标题
})
.订阅(
res=>console.log(res.json())
)
//console.log(this.buttonOffModel);
}
}

要同时在多台计算机上进行数据匹配,需要进行一些服务器端处理。双向数据绑定只意味着模型/控制器可以向视图(HTML)发送数据,也可以通过其他方式发送数据。你真的应该在这里发布代码。@MikeC是直角数据绑定,它发生在单个浏览器中,不在客户端之间。更具体地说,绑定一次只在浏览器的一个窗口中。可以设置窗口到窗口的通信,但这不是内置的。如果要跨多个用户同步,则需要套接字连接