2014-11-13 93 views
0

我有链接的数组:AngularJS显示的textarea的链接点击

$scope.links = [{ 
    URL: ''  
}]; 

我要让使用data-ng-repeat认为这些链接。

我该怎么做,以便当用户点击其下的任何链接将显示一个文本框?如果再次点击该文本框将消失?

因此,如果HTML是:

<div data-ng-repeat="link in links"> 
    <p> 
     <a data-ng-href="{{link.URL}}">{{link.URl}}</a> 
    <p> 
    // when link above is clicked, insert here textbox 
</div> 

回答

0

你可以利用这ng-repeat创建每个项目范围的事实。 使用一个临时变量showHelpText,这是你如何实现它:

<div data-ng-repeat="link in links"> 
    <p> 
     <a data-ng-href="{{link.URL}}" data-ng-click="showHelpText=!showHelpText">{{link.URl}}</a> 
    <p> 
    // when link above is clicked, insert here textbox 
    <input type="text" data-ng-show="showHelpText"> 
</div> 
1

尝试的ngClickngIf组合:

<div data-ng-repeat="link in links"> 
    <p> 
     <a data-ng-href="{{link.URL}}" 
     data-ng-click="link.$open = !link.$open">{{link.URl}}</a> 
     <input type="text" data-ng-if="link.$open" /> 
    <p> 
</div> 
+0

什么是链接的'的意思$ open'我明白链接是从链接迭代的当前项目,但是'。$ open'是怎么回事? –

+0

@DavidDury任意属性名称,你可以调用它,但是你想要(像一个变量)。我在前面加上'$'作为惯例,因为在用$ http发送数据时,斜角条带都带有前缀$ –