Angular - 在另一个组件的输入文本框中设置值

时间:2016-07-13 17:35:55

标签: html angular typescript textbox

我正在尝试在HTML输入文本框中设置值,该文本框是ws = create_connection("ws://192.168.1.5:6437") allowedProcessingTime = .1 #seconds timeStep = 0 while True: result = ws.recv() if time.clock() - timeStep > allowedProcessingTime: timeStep = time.clock() resultj = json.loads(result) if "hands" in resultj and len(resultj["hands"]) > 0: # print resultj["hands"][0]["palmNormal"] rotation = math.atan2(resultj["hands"][0]["palmNormal"][0], -resultj["hands"][0]["palmNormal"][1]) dc = translate(rotation, -1, 1, 5, 20) pwm.ChangeDutyCycle(float(dc)) print "processing time = " + str(time.clock() - timeStep) #informational ComponentA的一部分{4}}。

this获取线索我尝试过:

ComponentB

但这不起作用。还有什么我需要照顾的吗?

编辑: ID为(<HTMLInputElement>document.getElementById("name")).value = response.name; 的元素位于ComponentA中,上述代码尝试操作该元素位于ComponentB

2 个答案:

答案 0 :(得分:10)

如果您尝试从compoenent2设置component1的文本字段的值,则必须使用ngModel,即双向数据绑定。通过在提供者列表中提供component2,您可以访问该组件的所有功能和变量,然后您可以轻松设置您的值。像这样

假设这是你的组件2的值属性

name:string = 'Pardeep Jain';

,你可以在这样的组件中访问它 -

<input type="text" [(ngModel)]='name'>
....
constructor(private delete1: Delete){
   this.name = this.delete1.name;
}

Working Example

另外

(<HTMLInputElement>document.getElementById("name")).value = response.name;

用于使用id named as **name**

设置当前模板字段的值

答案 1 :(得分:1)

这是其中一个组件ComponentA上的用户交互触发另一个组件ComponentB上的更新的情况之一。

This article用示例代码描述了有关如何在组件之间传递信息的多种方法。

我个人最喜欢的是该文章中提到的第三种方法,其中某个组件(例如ComponentA)通过任何方式从任何组件(例如ComponentB)“监听”更新它们之间的服务,导致组件之间松散耦合。

有关更多方法,这里是另一个link