【问题标题】:How to pass AngularJS ng-repeat Variable to Javascript click event如何将AngularJS ng-repeat变量传递给Javascript点击事件
【发布时间】:2015-01-03 14:28:35
【问题描述】:

我想知道如何将 Angular ng-repeat 变量传递给我的 Javascript onclick 事件

我的角度转发器

       <div class="data" data-ng-repeat="sub in subs" >  
            <button onclick="ConfirmDialog(sub.SubID)">Cancel</button>
            {{ sub.someOtherProperty}}
            {{ sub.someOtherProperty}}
            {{ sub.someOtherProperty}}                
        </div>

我的脚本函数

<script type='text/javascript'>

    function ConfirmDialog(subID) {
             console.log('Succesfully submitted id: ', subID);
    });
 </script>

错误:sub is not defined(在按钮元素的 onclick() 调用中)所有其他属性都按预期显示。

【问题讨论】:

    标签: javascript angularjs parameter-passing ng-repeat


    【解决方案1】:

    您正在直接运行 javascript onclick 而不是 ng-click。

    将confirmDialog移到您的控制器中,然后ng-click可以附加到它。

     <div class="data" data-ng-repeat="sub in subs" >  
            <button ng-click="ConfirmDialog(sub.SubID)">Cancel</button>            
     </div>
    
     $scope.ConfirmDialog = function (subID) {
             console.log('Succesfully submitted id: ', subID);
     });
    

    【讨论】:

    • "Turning into a String" 方法不起作用,错误:错误:[$compile:nodomevents] 不允许对 HTML DOM 事件属性进行插值。请改用 ng- 版本(例如 ng-click 而不是 onclick)。但是,将其移入控制器确实 +1!
    【解决方案2】:

    如果你不想使用 ng-click,你还有机会!试试下面的

    <tr ng-repeat="supplier in suppliers" id="{{supplier.id}}">
           <button onclick="readVariable(this);">
    </tr>
    
    <script>
        function readVariable(elem){
            id = elem.parentNode.id;
            console.log(id);  //it works!
        }
    </script>
    

    【讨论】:

      【解决方案3】:

      您应该使用 ng-click 来访问 ng-repeat 变量

      <button ng-click="ConfirmDialog(sub.SubID)">Cancel</button>
      

      【讨论】:

      • 我不会将它传回给 Angular 控制器。 Ng-click 不起作用。
      • 我想我误解了你,因为你试图告诉我使用 ng-click 将所有内容移动到控制器中。我不知道这是你的意思,所以 +1。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-01
      • 1970-01-01
      相关资源
      最近更新 更多