【问题标题】:Angular, Calling a function with ng-click work only once with ng-routeAngular,使用 ng-click 调用函数只能使用 ng-route 一次
【发布时间】:2017-08-27 13:00:03
【问题描述】:

我在 ng-repeat 中添加了一个 ng-click,我想在循环中获取单个项目,它运行良好但只有一次。

ng-repeat="item in Playlist.item" ng-click="getSingleItem(item)"

在我的控制器中

$scope.getSingleItem = 功能(项目){ 控制台.log(项目); }

如果我单击我在控制台日志中获取项目对象,则此单击是一个 href 并使用 ng-route 将我发送到下一页。 但是,如果我返回并单击相同的链接或另一个链接,它将不起作用。

它只触发一次。

更新! 我只是发现用我自己的 href 指令和 ng-click 它只工作一次,但如果我只是在我自己的指令中添加一个 $timeout 它将工作。

【问题讨论】:

  • 应该是:ng-repeat="item in Playlist.item" ng-click="getSingleItem(item)"
  • 我知道,这只是 stackoverflow 上的复制错误。我发现它适用于我自己的指令和 ng-click 停止功能,但如果我只是在我的指令中添加一个 $timeout,它就可以工作。
  • @Gino 你应该发布你的答案,如果你有答案的话。

标签: angularjs angularjs-ng-click ngroute angularjs-ng-route


【解决方案1】:

不确定你是否发布了正确的代码,你的 ng-click 应该放在 ng-repeat 之外,

ng-repeat="item in Playlist.item" ng-click="getSingleItem(item)"

【讨论】:

    【解决方案2】:

    您的 HTML 代码中有错误。您在该行中缺少逗号。 这应该是:

    ng-repeat="item in Playlist.item" ng-click="getSingleItem(item)"

    【讨论】:

      【解决方案3】:

      我不确定您在 ng-repeat 之后在做什么,因为您的帖子没有任何其他代码,但我猜这是因为您没有列出您在 ng-repeat 中拥有的项目。

      我已经做过类似的事情了:

      <div>
           <table>
               <thead>
                  <tr>
                    <td>Item</td>
                  </tr>
               </thead>
               <tbody ng-repeat="item in Playlist.item" ng-click="getSignleItem(item)">
                  <tr> 
                     <td>{{item}}</td>
                  </tr>
               </tbody>
           </table>
      </div>
      

      您现在应该能够单击表中列出的项目,然后执行 ng-click 并传递被单击的项目。

      干杯!

      【讨论】:

        猜你喜欢
        • 2018-09-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多