在Javascript中打开弹出窗口显示相同的值而不是显示不同的值

时间:2017-03-27 06:50:16

标签: javascript html ejs

<div>       
    <% items.forEach(function(itemname,index) { %>
               <table>
                <tr>
                   <td>
                     <a href="#Test"><img src="samplebutton.png"></a>  
                <div id="Test">
               <div>
                         <input type="text" value="<%= itemname %>">
                   </div>
            </div>
           </td>
                </tr>
              </table>
    <% }) %>
</div>

我有以下代码。在此代码中,我的页面上有三个“示例按钮图标”,并且在此ejs文件中传递了三个“项目”。如果我点击任何“示例按钮图标”然后通过href“测试”,将打开一个输入框弹出窗口,我可以在其中键入“项目名称”,默认情况下,在该输入框中,应显示来自ejs文件的传递的“项目名称”。 现在出现的问题是如果我点击任何样本按钮图标,那么只有第一个项目名称会显示在输入弹出窗口中。我希望如此,如果我点击第一个样本按钮图标,则默认情况下应显示第一个项目名称,如果我单击第二个样本按钮图标,则默认情况下应显示第二个项目名称,依此类推。那么,我在这段代码中的错误呢?我试图移出主div,然后它只显示第一个项目名称。

1 个答案:

答案 0 :(得分:0)

    let fakeHttp = {
      get: (_: any) => {}
    };

    // I'm not familiar with sinon,
    // but i believe this is stubbing the get method of fakeHttp
    // and returning a canned response
    sinon.stub(fakeHttp, "get").returns(Observable.of("sinon Event!"));

    let eventDataService = new EventDataService(fakeHttp);

    // remember, getEvents returns an observable,
    // so to test it you have to subscribe to it and check its values
    eventDataService.getEvents().subscribe(data => {
      expect(data).to.equal("sinon Event!");
    });