【发布时间】:2016-08-28 15:21:56
【问题描述】:
假设我有一个 TypeScript 对象,我在视图的某处声明:
<script type="text/javascript">
var myTSObject = Module.CustomClass('#someId');
myISObject.bind();
</script>
现在我需要处理来自带有<script> 标签的元素内部的某处的点击:
<div id="thisDiv">
<script type="text/javascript">
var myTSObject = Module.CustomClass('#thisDiv');
myISObject.bind();
</script>
<button onClick="myISObject.handleClick()" />
</div>
到目前为止一切都很好,但是如果我使用上面的 <div>...</div> 块作为模板,那么当我的视图生成时,它看起来像这样:
<div id="thisDiv">
<script type="text/javascript">
var myTSObject = Module.CustomClass('#thisDiv');
myISObject.bind();
</script>
<button onClick="myISObject.handleClick()" />
</div>
<div id="thatDiv">
<script type="text/javascript">
var myTSObject = Module.CustomClass('#thatDiv');
myISObject.bind();
</script>
<button onClick="myISObject.handleClick()" />
</div>
这会失败是可以理解的,因为现在第二个 myISObject 覆盖了第一个。但由于 <div>...</div> 块是模板,我无法硬编码 JS 变量名。如何相应地处理这个?
【问题讨论】:
-
myTSObjectVSmyISObject- 他们应该是一样的吗?
标签: javascript razor model-view-controller typescript