Ng-改变div指数的变化

时间:2016-09-26 14:07:37

标签: javascript angularjs indexing angularjs-directive

我试图在每次对象的$ index变化时调用ng-change函数。对象是可以在屏幕上重新排序的可拖动div的列表。

索引是对象的位置,每次更改时我都需要更新api,这不是我遇到问题的部分。

当$ index值改变时,它实际上调用函数的ng-change。有什么建议吗?

<div class="col s7 offset-s1 tooltipped" data-position="bottom" data-delay="50" data-tooltip="Drag cards to move their position.">
  <form id="dashDragForm">
    <div class="card-panel hoverable center-align"
         **ng-model="$index" ng-change="positionUpdate(current, $index)"** 
         ng-class="{'draggable-md': dashboard.Panels.length < 5 ,'draggable-sm': dashboard.Panels.length > 4}" 
         ng-repeat="current in dashboard.Panels">
        <div class="row col-s12">
            <i ng-if="current.Type == 'Table'" class="material-icons left white-text">line_style</i>
            <i ng-if="current.Type == 'Chart'" class="material-icons left white-text">timeline</i>
            <i class="close material-icons right modal-trigger" data-target="removePanelModal" ng-click="openDeleteModal(current, $index)">close</i>
        </div>
            <h6 class="white-text">{{current.Title}}</h4>
        <div class="row col-s12">
            <br/>
        </div>
    </div>
  </form>
</div>

1 个答案:

答案 0 :(得分:0)

文档清楚地指出ng-change指令仅在用户更改输入时评估表达式。用户在inputselecttextarea标记上输入输入。在这种情况下,ng-model指令不在inputselecttextarea标记上。它位于div标记上。

来自文档:

  

ngChange

     

用户 更改输入时,评估给定的表达式。表达式是立即计算的,不像JavaScript onchange事件,它只在更改结束时触发(通常,当用户离开表单元素或按下返回键时)。

     

ngChange表达式仅在输入值的更改导致将新值提交给模型时进行评估。

     

不会对其进行评估:

     
      
  • 如果以编程方式更改模型而不是更改输入值
  •   

- AngularJS ng-change Directive API Reference

如果要在progammatic更改上评估表达式,请使用scope.$watch